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