13Fermer15
d3usLe 21/12/2007 à 23:18
Kevin Kofler (./12) :
Attends... Tu n'utilises pas realloc correctement peut-être? Il faut toujours utiliser la valeur de retour, parce que realloc peut déplacer ton bloc de mémoire. La bonne utilisation du realloc C ISO (attention, celui de TIGCC est subtilement différent) est:
void *new=realloc(ptr,newsize);
if (newsize && !new) {
  free(ptr);
  qFatal("realloc failed\n");
}
ptr=new;

avec ou sans pointeur de retour ça me fait une segmentation fault.

sinon pour le code, les lignes utiles c'est ça :
mem=calloc(4*memsize,sizeof(*mem));
mem=realloc(mem,(0x7ffffff-mem1size+1)*sizeof(*mem));

(je n'utilise pas de pointeur de retour ici mais comme je le dis, j'ai testé avec et ça ne change rien)
Je ne pense pas que le reste du code soit utile (surtout qu'il y a a peu près 2000 lignes...)