Bonjour,
Je poste car j'ai un soucis de free.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 mydebug("prec->fields[i].data.value.a_string=[%s]\n", prec->fields[i].data.value.a_string); mydebug("strlen=[%d]\n", strlen(prec->fields[i].data.value.a_string)); free(prec->fields[i].data.value.a_string); mydebug("fin\n");
mydebug est une fonction qui log avec un flush.
Le debug affiche
Mais pas "fin", et pour cause, il y a eu un seg fault...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 prec->fields[i].data.value.a_string=[31313200 ] strlen=[11]
Mais dans la mesure ou on peut afficher le contenu de la variable et calculer sa taille avec un strlen, le fait qu'il ne puisse pas faire de free me semble completement inconpréhensible. Bref, si quelqu'un a la moindre piste, je suis prenneur !
A noter que ce code se trouve dans une boucle ou i est incrémenté de 1 à 140, et je n'ai le problème que pour un seul cas (le 119)...
Merci d'avance ;-)
Partager