1

je suis en train de faire un programme qui bouffe pas mal de mémoire.
après une petite mise a jour du code, il s'est mis a planter au milieu d'une routine qui marchait parfaitement avant.

j'ai donc ajouté un peu de code pour débugger
----------------------------------------------------------------------------------------------------------------
int load_advances(FILE *fp){
int i;
printf("1"); //debug
fread(&al,sizeof(int),1,fp);
printf("2<%d>(%lu)",al,HeapAvail()); //debug
printf("<%lu>",HeapMax()); //debug
ap = (advance *)malloc_throw(al * sizeof(advance));
printf("3"); //debug
fread(ap,sizeof(advance),al,fp);
printf("4"); //debug
for(i=0;i<al;i++){
if(ap[i].num_adv_required){
ap[i].adv_required = (char *)malloc_throw(ap[i].num_adv_required * sizeof(char));
fread(ap[i].adv_required,sizeof(char),ap[i].num_adv_required,fp);
}

ap[i].name = (char *)malloc_throw(30 * sizeof(char));
if(ap[i].name_length){
fread(ap[i].name,sizeof(char),ap[i].name_length,fp);
}
}
printf("5"); //debug
return 1;
}
----------------------------------------------------------------------------------------------------------------
et là, horreur! la calculatrice (en fait il s'aggit de VTI) plante a l'appel a HeapMax()! (ça plante aussi avec un HeapMax() sans printf())
(pour info, le HeapAvail() renvoye 111568 et je touche au maximum 2 x 17ko de données.)
donc j'y comprends rien. déjà que mon programe plate là où il marchait avant et en plus une fonction toute bête comme HeapMax() le fait planter.
je cherche une explication enfin de l'aide quoi. (parceque là ça bloque vraiment tout)

2

entre le bord des tic/tigcc teams et ici t'as peut être une chance d'avoir une réponsesmile
ça fait quoi comme plantage ? juste freez et pas de message ?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

3

ouais, juste freeze et pas de message.
entre le bord des tic/tigcc teams et ici t'as peut être une chance d'avoir une réponse

bah, j'en avais marre d'attendre sur l'autre donc je suis venu tenter ma chance ici, il y a plus de monde smile

4

j'ai trouvé mon erreur. un petit malloc qui ne mallocait pas la bonne taille. Et donc ça plantait lors de l'appel implicite a Heapcompress dans HeapMax.

et ... je retire ce que j'ai dit avant, ils répondent aussi sur le board tict.

5

le "al" que tu utilises dans fread, c'est une var globale?

Pour tes prochaines questions, il pourrait être utile de préciser quelles vars globales tu utilises...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.