Impossible de lire le contenu d'un tableau !

Signaler
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
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

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

Physic *drap;

Point *point;
Bielle *bielle;

bielle et point sont des pointeurs appartenant a la classe Physic.
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
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 !
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
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
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
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 !
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
Je confirme, c'etait bien ca!
Maintenant, c'est mon algo qui foire, mais ca, c'est un autre probleme.

Re: Merci
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ok, content que ton probleme soit resolu, tu voit suffit pas que sa compile :D