Что такое ошибка glibc free / malloc / realloc, неверный следующий размер / неверный указатель и как ее исправить?

Скорее всего, вы видите этот вопрос, потому что ваш вопрос был закрыт как дубликат этого. Для относительно полного списка связанных вопросов, пожалуйста, смотритеДлинный список возможных дубликатов - выделение памяти C и превышение границ на переполнении стека мета.

Пример вопроса

Отсвободный символ *: неверный следующий размер (быстрый) спросилNoobie на 2014-04-11.

Я освобождаюchar* после процесса конкатенации, но я получаю эту ошибку:

free(): invalid next size (fast): 0x0000000001b86170

Это мой код:

void concat(stringList *list) {
    char *res = (char*)malloc(sizeof(char*));

    strcpy(res, list->head->string);

    list->tmp = list->head->next;
    while (list->tmp != NULL) {
        strcat(res, ",");
        strcat(res, list->tmp->string);
        list->tmp = list->tmp->next;
    }

    printf("%s\n", res);
    free(res);
}
Общий вопрос

При запуске моей программы я вижу сообщение об ошибке, подобное этому:

*** glibc detected *** ./a.out: free(): corrupted unsorted chunks: 0x12345678 ***

Подробная информация может содержать любое из следующего после*** glibc detected *** и имя программы, и сообщение сопровождается шестнадцатеричным адресом (показанным как 0x12345678) и другим***:

free(): corrupted unsorted chunks: 0x12345678free(): invalid next size (fast): 0x12345678free(): invalid next size (normal): 0x12345678free(): invalid pointer: 0x12345678free(): invalid size: 0x12345678malloc(): corrupted unsorted chunks: 0x12345678malloc(): corrupted unsorted chunks 2: 0x12345678malloc(): memory corruption: 0x12345678malloc(): memory corruption (fast): 0x12345678malloc(): smallbin double linked list corrupted: 0x12345678munmap_chunk(): invalid pointer: 0x12345678realloc(): invalid next size (fast): 0x12345678realloc(): invalid old size (fast): 0x12345678realloc(): invalid pointer: 0x12345678corrupted double-linked list: 0x12345678

Это происходит во время вызоваfrobnicate() функция; что не так с этой функцией?

Ответы на вопрос(1)

Ваш ответ на вопрос