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.
BeispielfrageVonfree 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 FrageBeim 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: 0x12345678
free(): invalid next size (fast): 0x12345678
free(): invalid next size (normal): 0x12345678
free(): invalid pointer: 0x12345678
free(): invalid size: 0x12345678
malloc(): corrupted unsorted chunks: 0x12345678
malloc(): corrupted unsorted chunks 2: 0x12345678
malloc(): memory corruption: 0x12345678
malloc(): memory corruption (fast): 0x12345678
malloc(): smallbin double linked list corrupted: 0x12345678
munmap_chunk(): invalid pointer: 0x12345678
realloc(): invalid next size (fast): 0x12345678
realloc(): invalid old size (fast): 0x12345678
realloc(): invalid pointer: 0x12345678
corrupted double-linked list: 0x12345678
Dies geschieht beim Aufruf derfrobnicate()
Funktion; Was ist los mit dieser Funktion?