Was ist ein glibc free / malloc / realloc next size / invalid pointer Fehler und wie kann ich ihn beheben?

Sie sehen diese Frage höchstwahrscheinlich, weil Ihre Frage als Duplikat geschlossen wurde. Eine mäßig vollständige Liste verwandter Fragen finden Sie unterEine lange Liste möglicher Duplikate - C-Speicherzuordnung und Überlaufgrenzen auf Meta Stack Overflow.

Beispielfrage

Vonfree char *: Ungültige nächste Größe (schnell) gefragt vonNoobie am 11.04.2014.

Ich befreie achar* Nach einem Verkettungsvorgang erhalte ich jedoch folgende Fehlermeldung:

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

Das ist mein Code:

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);
}
Allgemeine Frage

Beim Ausführen meines Programms wird folgende Fehlermeldung angezeigt:

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

Die detaillierten Informationen können nach dem Folgendes enthalten:*** glibc detected *** Nach dem Programmnamen und der Nachricht folgt eine hexadezimale Adresse (angegeben als 0x12345678) und eine weitere***:

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

Dies geschieht beim Aufruf derfrobnicate() Funktion; Was ist los mit dieser Funktion?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage