Accueil > Forum > > > > Access Violation sur Destructeur
Access Violation sur Destructeur
mardi 3 août 2004 à 16:35:54 |
Access Violation sur Destructeur

Clonk
|
Bonjour, j'utilise 4 classes : Champs et Contrainte contenus dans Catégorie, contenue dans Type (tout le monde suit?) Pour gérer le contenant de chaque classe, j'ai utilisé des listes chainées (okd school, mais ça marche nikel) je n'ai aucun problème à l'initialisation, mais au moment de la destruction, j'ia un problème au niveau de champ et de contrainte, j'ai un access violation dès que je veux supprimer une valeur d'une des instances. Voilà mes destructeurs: Type::~Type() { cout<<"Lancement du destructeur de Type"<<_debutmasque<<endl; delete[] _debutmasque; delete[] _limit; Lcategorie * ltete = _lcategorie; Lcategorie * tmp = NULL; while (ltete != NULL) { tmp = ltete->suivant; ltete->_categorie.~Categorie(); ltete = tmp; } free(_lcategorie); int i = 5; }
Categorie::~Categorie() { cout<<"Lancement du destructeur de categorie "<<_masque<<endl; delete[] _masque; Lchamps * tetec = _lchamps; Lchamps * tempc = NULL; Lct * tetelct = _lct; Lct * tempct = NULL; while (tetec != NULL) { //if (tetec->suivant!=NULL) tempc = tetec->suivant; tetec->_champ.~Champ(); tetec = tempc; } while (tetelct != NULL) { //if (tetelct->suivant != NULL) tempct = tetelct->suivant; tetelct->ct.~Contrainte(); tetelct = tempct; } };
Champ::~Champ() { cout<<"Lancement du destructeur de Champ "<<_nomchamp<<endl; delete[] _nomchamp; delete[] _type; delete[] _format; delete[] _separator; delete[] _explication; }
Contrainte::~Contrainte() { cout<<"Lancement du destructeur de contrainte "<<Ct<<endl; delete[]Ct; delete[]_explication; }
|
Je vous préviens, je n'ai aucun destructeur qui se lance PENDANT le traitement, uniquement à la fin de mon main. Merci ;)
|
|
mardi 3 août 2004 à 19:16:59 |
Re : Access Violation sur Destructeur

djl
|
probleme de logique et de comprehension, depuis quand on appel explicitement un destructeur ?
tu melange aussi free et delete (ou alors delete[]??)
essay d'avoir un code coherent et surtout revoi les bases de la poo
|
|
mardi 3 août 2004 à 19:56:15 |
Re : Access Violation sur Destructeur

imanewin32
|
dans ~Type():si _debutmasque n'est pas un tableau d'elt c'est pas la peine de mettre[] la même chose pour _limit et pour ltete tu doit allouer sinon il va pointé sur le même emplacement que _lcategorie(même valeur) donc qd tu essaye de détruire ltete tu agit egalement sur _lcategorie
c'est une possiblité!!!!! car ton code est un peu compliqué sinon revoit ton code ligne par ligne ,et tu trouvera surement la reponse Bonne chance
|
|
mercredi 4 août 2004 à 10:04:38 |
Re : Access Violation sur Destructeur

Clonk
|
Bon, j'ai "un peu" revu mon code, surtout pour la relecture, mais j'ai toujours ce problème... Je n'ai aucun problème au niveau des destructeurs de Type et Categorie, aucun non plus au niveau de mes listes chainées, c'est au niveau de la destruction de mes char * dans Champs et Contrainte. djl : Oui, je mélangeais free et delete, je suis torp habitué à faire du C, et pas du C++, donc G mélangé. Voilà, C ptete légèrement plus compréhensible: Type::~Type() { delete[] _debutmasque; delete[] _limit; Lcategorie * ltete = _lcategorie; Lcategorie * tmp = NULL; while (ltete != NULL) { tmp = ltete->suivant; delete ltete; ltete = tmp; } }
Categorie::~Categorie() { delete[] _masque; Lchamps * tetec = _lchamps; Lchamps * tempc = NULL; Lct * tetelct = _lct; Lct * tempct = NULL; while (tetec != NULL) { tempc = tetec->suivant; delete tetec; tetec = tempc; } while (tetelct != NULL) { tempct = tetelct->suivant; delete tetelct; tetelct = tempct; } }
Champ::~Champ() { delete[] _nomchamp; delete[] _type; delete[] _format; delete[] _separator; delete[] _explication; }
Contrainte::~Contrainte() { delete[]Ct; delete[]_explication; }
|
Note : tous mes "delete[]" sont sur des char* que j'ai alloué en new char [val]. Et ça ne me fait un access violation UNIQUEMENT sur les char* dans Champs et Contrainte. Je capte toujours pas!
|
|
mercredi 4 août 2004 à 10:26:00 |
Re : Access Violation sur Destructeur

Clonk
|
Cbon, j'ai capté, CT meme pas dans les destructeurs, je n'avais pas sorrigé les constructeurs de ces classes, c'est tout... Mais sinon, mes destructeurs, mal fait, certes, marchaient très bien ^_^ Meric du coup de main
|
|
Cette discussion est classée dans : champ, delete, contrainte, destructeur, tetelct
Répondre à ce message
Sujets en rapport avec ce message
champ de saisie [ par vinc ]
Comment récupérer ligne par ligne dans un champ de saisie en Visual C++ ?vinc
net use * /delete EN C++ [ par LeBobo ]
Salut. J'ai un petit programme qui utilise la fonction : system(''net use * /delete'') ; Le problème est que mon programme à une interface graphique w
accéder à un champ précis d'une table [ par Hub ]
Voilà je débute un peu en base de données, et je dois accéder à un champ précis d'une table, avec c++ Builder, grâce aux pbjets ADO... Quelqu'un peut
ecriture de champ de bits dans un fichier [ par obasileus ]
Salut, est-ce que quelqu'un sait comment ecrire un champ de bits (9 bits) dans un fichier ?merci d'avance@+obasileus
ecriture ds un fichier txt [ par Leparasite ]
Bonjour , bon je suis nouveau dans la programation , alors j'essai de faire des petit truc assez simple pour commencer et là j'ai un petit prob .bon j
Est-ce la meilleure méthode ? [ par jeromedeparis13 ]
Bonjour,J'utilise Visual C++ et Access 97 pour une application . J'ai besoin de me connecter à la BD (Access 97 qui compte une dizaine de tables) afin
ajout de valeur dans champ access [ par theflucke ]
je dois en c++ inserer des donnes dans une dbgrid qui est liee a une table access... le probleme est que soit disant jen suis pas en mode editionj'ai
Activer/Désactiver champ de saisie [ par CHENRY ]
En VC++ 6 avec les MFC, comment faire pour activer désactiver dynamiquement un champ de saisie.Cette option existe dans les propirétes lorsqu'on créé
Touches de fonctions [ par CHENRY ]
En VC++6.0 avec les MFC, je souhaite employer les touches de fonction( F1 à F8) .Le but est:Dans un ecran de saisie, quand l'user est sur un champ de
New et Delete [ par Tyroflan ]
juste une questionsi j'ai ceci : int *p1;...main(){int pipi;cin >> pipi;p1 = new int [pipi];...delete[pipi] p1; ou bien delete[] p1;}MAISje procède
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|