Access violation

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 - 7 août 2005 à 21:01
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 - 8 août 2005 à 15:12
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

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
7 août 2005 à 21:14
pPrevItem ne doit pas etre un 'bon pointeur', verifie ca.

+2(p - n)
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
7 août 2005 à 21:33
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
0
cs_yAAm Messages postés 45 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 22 février 2006
7 août 2005 à 21:45
Ca plante peut etre dans ton constructeur !
0
cs_yAAm Messages postés 45 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 22 février 2006
7 août 2005 à 21:47
Met le code du contructeur :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yAAm Messages postés 45 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 22 février 2006
7 août 2005 à 22:04
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
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
7 août 2005 à 22:31
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
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
7 août 2005 à 22:36
Quelle etait ton erreur ? (juste par curiosité)

+2(p - n)
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
8 août 2005 à 15:12
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
0
Rejoignez-nous