Access violation

Signaler
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Coucou,

J'ai fait une fonction dans laquelle je passe un pointeur :

Ajout(Carnet* pPrevItem,...)

{

pPrevItem->pSuivant = new Carnet;

...

}

et il y a un joli Access violation sur cette ligne lors du débuggage. Et je ne vois pas pourquoi.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite

8 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
pPrevItem ne doit pas etre un 'bon pointeur', verifie ca.

+2(p - n)
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
1
Voilà ma fonction entière :

Carnet* Ajouter(Carnet* pPrevItem,char* Nom,char* Prenom)

{

if( pPrevItem != NULL )

{

pPrevItem->pSuivant = new Carnet;

strcpy(pPrevItem->pSuivant->Nom,Nom);

strcpy(pPrevItem->pSuivant->Prenom,Prenom);

return pPrevItem->pSuivant;

}

else

{

Carnet* pTmp = new Carnet; //
l'erreur est à cette ligne parce que je passe NULL en premier param

strcpy(pTmp->pSuivant->Nom,Nom);

strcpy(pTmp->pSuivant->Prenom,Prenom);

return pTmp->pSuivant;

}

return NULL;

}

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
Messages postés
45
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
22 février 2006

Ca plante peut etre dans ton constructeur !
Messages postés
45
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
22 février 2006

Met le code du contructeur :p
Messages postés
45
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
22 février 2006

En tout cas, pSuivant a l'air d'etre init au dessus et la dans le else,
si il est initialisé ds le constructeur ca doit tourner en boucle nan ?
ou alors pSuivant est NULL
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
1
C'est bon j'ai compris mon erreur... C'est mon entrainement au liste chainée... merci de votre aide quand même.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Quelle etait ton erreur ? (juste par curiosité)

+2(p - n)
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
1
Et bien c'était une erreur toute bête, je me trompais de pointeur...

pItem->pSuivant == NULL juste après la création de pItem. Je me suis perdu dans tous dces pointeurs...

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite