← Journal · Archiv

glibc detected realloc(): invalid next size:

April 26, 2007

Für alle armen Coder die nicht wissen, warum ihr zur Laufzeit vergrößerter Speicher in C nur manchmal den o. g. Fehler wirft, sich durch das Internet quälen und keine Antwort darauf finden, dem sei gesagt: Ihr verwendet bei realloc und bei malloc zwei unterschiedliche Datentypen. Ein dummer Flüchtigkeitsfehler:

Mein Fehler:

Occurences->DocumentIDs = (unsigned long int *)malloc(
    sizeof(unsigned short int)
  ); /* bad! */
...
tmptr = (unsigned long int *)realloc(
    Occurences->DocumentIDs, sizeof(unsigned long int)
  );

So ist’s richtig:

Occurences->DocumentIDs = (unsigned long int *)malloc(
    sizeof(unsigned long int)
  ); /* good */
...
tmptr = (unsigned long int *)realloc(
    Occurences->DocumentIDs, sizeof(unsigned long int)
  );

0 Kommentare

Kommentar hinterlassen