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