Salut 
 
J'ai un problème après une désallocation mémoire d'une structure de données : caractères bizarres et je comprends pas pourquoi 
 
Voilà mon code :
 
la structure de données :
Code :
 - typedef struct Ligne {
 -   char * chaine;
 -   int taille;
 - } ligne;
 
  | 
 
Code :
 - #define FREE(x) { if (x) free(x); x = NULL; }
 - ligne * creation (int longueur)
 - {
 -   ligne * uneLigne;
 -   uneLigne = (ligne *) malloc (sizeof(ligne));
 -   uneLigne->chaine = (char*) malloc (longueur * sizeof(char));
 -   uneLigne->taille = longueur;
 -   return uneLigne;
 - }
 - void destruction (ligne * uneLigne)
 - {
 -   FREE(uneLigne->chaine);
 -   FREE(uneLigne);
 - }
 
  | 
 
 
La fonction qui permet d'afficher le contenu d'une ligne :
Code :
 - void afficheStructLigne(ligne * maLigne){
 -   if (maLigne != NULL){
 -     printf("*** Structure ligne ***\n" );
 -     printf("   Taille        : %d \n",maLigne->taille);
 -     printf("   Contenu       : %s", maLigne->chaine);
 -    }else{
 -     printf("*** Structure ligne ***\n" );
 -     printf("\tVide\n" );
 -     }
 - }
 
  | 
Le résultat quand je veux afficher le contenu d'une ligne devrait être null mais il m'affiche n'importe quoi :
Code :
 - *** Structure ligne ***
 -    Taille        : 1075192760
 -    Contenu       : °#@°#@@@À#@À#@È#@È#@Ð#@Ð#@Ø#@Ø#@à#@à#@è#@è#@ð#@ð#@ø#@ø#@
 
  | 
 
Merci de m'aider 
 
Message édité par nast le 08-11-2004 à 15:32:29