Impossible de lire le contenu d'un tableau !

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 11 avril 2004 à 01:46
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 11 avril 2004 à 10:51
Salut,

J'utilise Visual C++ 6.0

J'ai créé une classe (Physic), et dans le meme fichier header (physic.h), 2 structures (Bielle et Point).
Des membres publics de la classe Physic sont des pointeurs vers des tableaux d'elements des structures (bielle et point).

Depuis certaines autres classes du meme programme, j'arrive a lire le contenu des tableaux de structures (Bielle et Point) via la classe Physic, mais pas dans les autres. En fait, le compilateur ne rale pas du tout, mais le programme executer bugge a l'endroit ou j'essaie de lire le tableau de puis une fonction d'une classe.

En gros, c'est pas un probleme de linker.. le programme se compile parfaitement.

C'est ici que ca plante:
cvVertices[n].x=drap->point[n].x;

cvVertices est un tableau d'elements d'une structure CUBE_CUSTOMVERTEX.
x un membre de la structure CUBE_CUSTOMVERTEX.
n un entier.

drap un pointeur vers la classe "Physic" qui partage le fichier header avec la structure "Point" (et "Bielle").
point est un pointeur vers un tableau d'elements d'une structure (Point).
x un membre de la structure Point.

Le code est bon car cette methode ne plante pas a tous les coups.

Bien sur, dans la classe dont une fonction doit lire le contenu du tableau, j'ai mis:

#include "physic.h"
extern Physic *drap;

VC++ est d'accord avec ma ligne "cvVertices[n].x=drap->point[n].x;" car quand je tape les "->" et "." il me propose les differentes possibilites pour la suite.

C'est assez difficile a expliquer (donc a comprendre), je vous serais d'autant plus reconnaissant de m'aider.

Merci

Si vous voulez des details, n'hesitez-pas !

6 réponses

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
11 avril 2004 à 01:49
En gros on a:

Physic *drap;

Point *point;
Bielle *bielle;

bielle et point sont des pointeurs appartenant a la classe Physic.
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
11 avril 2004 à 09:15
Cette fois ci j'ai fait:
Point *point_temp;
point_temp = drap->point;

Puis:
cvVertices[n].x=point_temp[n].x;

Ca se compile.

Mais le programme (pas le compilateur) plante a la ligne:
"point_temp = drap->point;"

Please help !
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 avril 2004 à 10:01
heu ca compile, vc++ est d'accord avec ca,... tu crois que ca ve dire que ton code est bon? loin de la, surtout avec vc++

c'est vrai que le probleme est bizar, ca plante sur un acces en ecriture, doit y avoir autre chose (c'est bien un access violation?)que dit le debuggeur ?

ya pas de pb dans l'ordre de creation des objets?

ps: struct c'est une classe en c++, le seul point commun avec les structure du C c'est le nom
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
11 avril 2004 à 10:42
Merci pour la reponse (et pour la pub pour VC++ =))

Le debugger dit: "Unhandled exception in ddraw.exe: 0xC0000005: Access Violation."

En fait, j'aimerai juste remplir un tableau de Vertices en utilisant des données contenu dans un tableau pointé par un pointeur appartenant a une classe.
(C'est super long comme phrase mais on ne peut pas faire plus court ...)

Rahhhh !!! (je viens de lire ta phrase : "ya pas de pb dans l'ordre de creation des objets?")

Reponse: Si

Je vais corriger ca.

!! ! Merci beaucoup ! !!

'Tain la honte, shame on me .... :blush) :blush) :blush) :blush) :blush)

Mais ca se trouve il y a autre chose ... hé hé.

Encore merci !
0

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

Posez votre question
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
11 avril 2004 à 10:47
Je confirme, c'etait bien ca!
Maintenant, c'est mon algo qui foire, mais ca, c'est un autre probleme.

Re: Merci
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 avril 2004 à 10:51
ok, content que ton probleme soit resolu, tu voit suffit pas que sa compile :D
0
Rejoignez-nous