Programm stürtzt ab bei free()
-
Abend, habe en kleines Problem und zwar mein Programm stürtzt immer bei free() ab hier der Code:
int result(char *wort) { char *p=NULL p = calloc(strlen(wort)+1,sizeof(char)); //arbeite mit p.... free(p); //genua hier stürzt des programm immer ab p = NULL }
ich glaube der code erklärt doch mein problem ganz gut...
-
Interessant ist, was du mit p dazwischen anstellst. Höchstwahrscheinlich schreibst du über die Grenze des Speicherblocks hinaus und zerstörst damit den Aufbau des Heaps.
-
Mach mal
int result(char *wort) { char *p=NULL, *tmp; p = calloc(strlen(wort)+1,sizeof(char)); tmp = p; //arbeite mit p.... // tmp gar nicht anfassen printf("p == tmp ? %s\n", p == tmp ? "ja" : "nein"); free(p); //genua hier stürzt des programm immer ab p = NULL; /* völlig unnötig */ }
was kommt raus?