| [Prog et Dev] Pb lecteur obj | |
|
|
Auteur | Message |
---|
Vincent D Gamer
Messages : 73 Date d'inscription : 25/09/2008
| Sujet: [Prog et Dev] Pb lecteur obj Mar 11 Nov - 19:14 | |
| Voila l'erreur que j'ai - Citation :
- Exception de première chance à 0x010e2d13 dans rendu_tpreel.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0xcdcdcdcd.
Exception non gérée à 0x010e2d13 dans rendu_tpreel.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0xcdcdcdcd. J'ai localisé le probleme a l'appel de cette fonction mais je n'arrive pas a l'identifier pour le corriger. - Citation :
float * tabsommet = new float[maxsommet]; //declaration de mon tableau de sommet
void obj::addsommet(float a, float b, float c ) { if (nbsommet<maxsommet) { tabsommet[3*nbsommet]=a; tabsommet[3*nbsommet+1]=b; tabsommet[3*nbsommet+2]=c; nbsommet++; } else /*gestion des erreurs*/ ; }; Voici la partie de code qui appelle cette fonction - Citation :
- if(0==symbole.compare("v"))
{ float a, b, c; std::cout << " ** Entree boucle vertex **" <<std::endl; flux >> symbole; //std::cout << "symbole :" << symbole << std::endl; a=((float)atof(symbole.c_str())); flux >> symbole; //std::cout << "symbole :" << symbole << std::endl; b=((float)atof(symbole.c_str())); flux >> symbole; //std::cout << "symbole :" << symbole << std::endl; c=((float)atof(symbole.c_str())); std::cout << "v " << a << " " << b << " " << c << std::endl; objet->addsommet(a, b, c); } en gros, quand je lis un "v" je sais que c'est un point la suite est compose 3 floats que je lis et stocke dans 3 variables a, b et c. Enfin j'appelle addsommet pour stocker ce sommet dans mon tableau de sommet. J'ai essayé avec des tableaux bidimensionnel, des objets, etc... mais rien n'y fait. j'ai donc simplifier au max mais ca ne passe toujours pas. Si un programmeur voit d'où ca vient, merci de m'aider. On passe souvent a cote d'erreurs connes a cause d'un manque de recul sur son code, ce qui est d'autant plus enervant. ca devrait marcher mais ca ne veut pas. | |
|
| |
Rémy.L Homo Sapiens
Messages : 14 Date d'inscription : 05/10/2008 Age : 38
| Sujet: Re: [Prog et Dev] Pb lecteur obj Mar 11 Nov - 22:36 | |
| salut vincent,
ton erreur indique une erreur d'écriture que l'on pourrait qualifier de null pointer exception si on était en java (je sais que tu maitrise mieux le java). Donc en C généralement, c'est un problème de pointeur (et là tu maudit le c). Comme ça juste avec ton code, je peux pas plus t'aider j'aurai besoin de faire des tests sur les pointeurs et voir le débogueur.
Si tu veux on peut voir ça demain entre midi et deux. | |
|
| |
Vincent D Gamer
Messages : 73 Date d'inscription : 25/09/2008
| Sujet: Re: [Prog et Dev] Pb lecteur obj Mar 11 Nov - 23:25 | |
| L'annee derniere, j'etais sous java et c'est vrai que le respect des regles d'encapsulation obligatoire ou l'interdiction des pointeurs, ca evite ce genre de chose. J'ai quand meme quelques années de C, a l'epoque je faisais mumuse avec les pointeurs sans probleme. Le C++, c'est entre les 2, et je ne sais pas si c'est le langage ou l'interface de developpement, mais c'est monstrueux. Clairement, mon programme tape la où il ne faut pas, alors que je veux juste remplir un tableau ! Bon on verra demain. | |
|
| |
RAPDel Gamer
Messages : 67 Date d'inscription : 25/09/2008 Age : 38 Localisation : Tain L'Hermitage
| Sujet: Re: [Prog et Dev] Pb lecteur obj Mer 12 Nov - 0:10 | |
| C'est pas étonnant que tu sortes de ton tableau ^^. Le test "nbsommet<maxsommet" ne te préserve pas de la bonne écriture en 3*nbsommet, 3*nbsommet+1 et 3*nbsommet+2.
Je préconise plus un "if ((3*nbsommet+2)<maxsommet)", au moins tu seras sûr de ne pas sortir de ton tableau. | |
|
| |
duff Homo Sapiens
Messages : 11 Date d'inscription : 02/10/2008
| Sujet: Re: [Prog et Dev] Pb lecteur obj Mer 12 Nov - 1:09 | |
| Oui je plussois !!! C'est un accès à une case du tableau qui est non définie !! Donc soit tu changes ton test qui n'empêche pas les dépassements d'écriture dans le tableau, soit tu peux recoder un tableau templaté, afin de gérer toi même l'allocation mémoire de ton tableau (si tu veux je connais quelqu'un qui est très doué pour ça ) Essaye d'utiliser les vector, ce sera beaucoup plus pratique | |
|
| |
Vincent D Gamer
Messages : 73 Date d'inscription : 25/09/2008
| Sujet: Re: [Prog et Dev] Pb lecteur obj Mer 12 Nov - 8:35 | |
| Je dois reconnaitre que votre remarque sur la condition est fondé. Comme je l'ai dit j'ai essayé de simplifier au max, fait plusieurs essais et bon je n'ai pas modifié ce test qui pourrait effectivement occasionné un depassement de tableau mais ..... L'erreur est signalé a la premiere entree quand nbsommet=0 dans un tableau de 10000 floats. Je vous montrerai ca. | |
|
| |
RAPDel Gamer
Messages : 67 Date d'inscription : 25/09/2008 Age : 38 Localisation : Tain L'Hermitage
| Sujet: Re: [Prog et Dev] Pb lecteur obj Mer 12 Nov - 9:12 | |
| On peut aussi ajouter que tu manipules une variable globale hors de ta classe avec une méthode de classe. Ton tabsommet n'est pas dans ta classe obj ?
Suivant la gestion de ton tableau global, ça peut ou non bien se passer. | |
|
| |
Contenu sponsorisé
| Sujet: Re: [Prog et Dev] Pb lecteur obj | |
| |
|
| |
| [Prog et Dev] Pb lecteur obj | |
|