Problème de Procedure avec liste chainée et fichier - C++ - Programmation
Marsh Posté le 16-02-2005 à 17:55:36
ça veut dire quoi ça?
ta réponse me fait énormément avancer dans mon problème merci bien!
Marsh Posté le 16-02-2005 à 18:37:05
Je vois beaucoup d'erreurs et me demande comment tu arrives a compiler ce code, mais le plus bizare, c'est ton constructeur :
Code :
|
Pourquoi tu mets deux fois 0 dans ptrTete, et pourquoi crée-tu deux clients (dont un est perdu dans la memoire après ton 1er ptrTete=0; )
Marsh Posté le 16-02-2005 à 18:49:48
Oui effectivement je n'avais pas vu cette erreur :
voila ce que ça donne :
Code :
|
Le premier poiteur me sert de pointeur de tete de ma liste et le deuxieme de poiteur courant que je vais utiliser pour la lecture et l'insertion par la suite dans mon programme.
Où as-tu vu d'autres erreurs?
Marsh Posté le 16-02-2005 à 18:59:05
et sinon, niveau logique, quand tu fais
x = y;
x = z;
est-ce que t'as pas l'impression que la première instruction ne sert à rien ?
Marsh Posté le 16-02-2005 à 19:03:18
dreamanoir a écrit : Oui effectivement je n'avais pas vu cette erreur :
|
Justement ça n'a pas de sens, d'abord tu crées un objet (avec ton new) puis tu affectes 0 à tes pointeurs... donc tu "perds" tes objets sans même les désallouer et toute tentative d'appel à tes pointeurs va merder/planter vu qu'ils pointent sur un truc sans aucun rapport (l'espace mémoire de position 0)
Marsh Posté le 16-02-2005 à 22:58:13
Bon aller 2 autres petits trucs :
ligne 87 : a quoi sert delete ptr ? (a ce moment la ptr vaut NULL donc cette instruction est inutile)
ligne 97 : ptrTete=ptrTete (étrange non ?)
Marsh Posté le 17-02-2005 à 11:57:33
merci pour vos réponses.
Le problème vient du fait que je n'alloue pas de mémoire a s_client ligne 5.
Je vais changer de compilateur parceque avec turbo c++ je n'arrive pas a faire marcher std::string
merci encore
Marsh Posté le 17-02-2005 à 11:58:30
dreamanoir a écrit : merci pour vos réponses. |
C'est sûrement pas le seul problème
Marsh Posté le 17-02-2005 à 12:43:25
Pourquoi ne pas utiliser une std::list pour se focaliser sur les vrais problèmes ?
Marsh Posté le 16-02-2005 à 16:50:04
Voila je recupere grace a la procedure chargement les données concernant un client dans un fichier texte.
Je veux ensuite intégrer ces données dans une liste chainée
La procédure s'éxécute correctement mais lorsqu'elle se termine turbo c++ se ferme et j'ai le message suivant :
"Turbo c++ IDE
Le processeur NTVDM a rencontré une instruction non autorisée.
CS:8b3c IP:69e8 OP:f023 fa 23 04 Choisissez 'FERMER' pour mettre fin à l'application"
Je n'arrive pas a comprendre de quoi cela peut venir.
Ci dessous le code de ma procedure ainsi que de ma liste chainée :
Si vous arrivez a m'aider ça serait vraiment bien car ça fait une semaine que je suis sur ce problème