bonjour, je réalise un projet en C sur le traitement d'images. Je suis en ce moment sur la décompression de fichier 4T (format créé de toute pièce) dans lequel on utilise des arbres quadratique. là n'est pas le problème.
Pour les arbres, j'utilise cette structure:
j'utilise aussi une fonction pour ajouter un 4 noeud à un noeud existant (lui donner 4 fils):Code:typedef struct { char b; char v; char r; }PIXEL; struct noeud { PIXEL value; struct noeud * pere; struct noeud * fils1; struct noeud * fils2; struct noeud * fils3; struct noeud * fils4; };
La compilation du programme s'effectue bien, mais un problème survient au niveau de :Code:void ajouternoeuda(struct noeud *n) { n->fils1=(struct noeud *)malloc(sizeof(struct noeud)); n->fils2=(struct noeud *)malloc(sizeof(struct noeud)); n->fils3=(struct noeud *)malloc(sizeof(struct noeud)); n->fils4=(struct noeud *)malloc(sizeof(struct noeud)); n->fils1->pere = n; n->fils2->pere = n; n->fils3->pere = n; n->fils4->pere = n; n->fils1->fils1 = NULL; n->fils1->fils2 = NULL; n->fils1->fils3 = NULL; n->fils1->fils4 = NULL; n->fils2->fils1 = NULL; n->fils2->fils2 = NULL; n->fils2->fils3 = NULL; n->fils2->fils4 = NULL; n->fils3->fils1 = NULL; n->fils3->fils2 = NULL; n->fils3->fils3 = NULL; n->fils3->fils4 = NULL; n->fils4->fils1 = NULL; n->fils4->fils2 = NULL; n->fils4->fils3 = NULL; n->fils4->fils4 = NULL; }
j'ai localisé ce passage grâce à des printf un peu partout, si j'en met un avant, ça l'affiche, mais un après, ça ne l'affiche pas...Code:n->fils1=(struct noeud *)malloc(sizeof(struct noeud));
je précise qu'à l'exécution, j'ai une erreur du type: "compressionT4.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
j'utilise devc++ pour programmer. je n'arrive pas à utiliser le debug...
ayant visual C++, lors du message d'erreur j'ai la possibilité de debugger avec Visual C++.
il me met:
"Unhandled exception in compressionT4.exe 0xC0000005: Access Violation"
je ne sais pas si c'est important...
merci de me dire si quelque chose ne va pas (c'est la première foi que j'utilise malloc...)
bonne soirée!
Olivier
-----