C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

pointeur sur une classe ?

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Pierrick
Guest





PostPosted: Wed Jan 14, 2004 12:02 am    Post subject: pointeur sur une classe ? Reply with quote



Question de débutant.. mes excuses si j'me suis trompé de groupe de
discussion.
J'ai un pointeur monObjet sur une structure obj. Cette structure contient un
objet vector de la stl. Quand je tente de faire mon push_back le programme
plante. Je n'en comprend pas la raison et ne trouve pas d'alternative..

merci
Pierrick


#include <vector>

typedef struct {
float x,y,z;
} v3d;

typedef struct {
vector<v3d> points;
...
} obj;


void lireObjet (char *monFichier, obj *monObjet)
{
v3d vecteur;
...
// Plante à la ligne suivante :
monObjet->points.push_back(vecteur);
...
}


Back to top
Fabien LE LEZ
Guest





PostPosted: Wed Jan 14, 2004 12:10 am    Post subject: Re: pointeur sur une classe ? Reply with quote



On Wed, 14 Jan 2004 01:02:57 +0100, "Pierrick"
<pierrickzNOSPAM (AT) hotmail (DOT) com> wrote:

Quote:
typedef struct {
float x,y,z;
} v3d;

Ça c'est du bricolage à la C. En C++ on écrit plutôt :

struct v3d
{
float x, y, z;
};

Quote:
typedef struct {
vector<v3d> points;

idem

Quote:
void lireObjet (char *monFichier, obj *monObjet)

Tu as une raison de faire un passage par pointeur et pas par
référence ?

Quote:
{
v3d vecteur;
...
// Plante à la ligne suivante :
monObjet->points.push_back(vecteur);

A priori, le pointeur "monObjet" n'est pas valide. Le problème vient
du code appelant.

--
;-)

http://www.gotw.ca/gotw/063.htm
http://www.gotw.ca/gotw/067.htm#2

Back to top
Alexandre
Guest





PostPosted: Wed Jan 14, 2004 12:17 pm    Post subject: Re: pointeur sur une classe ? Reply with quote




Quote:
void lireObjet (char *monFichier, obj *monObjet)
{
v3d vecteur;
...
// Plante à la ligne suivante :
monObjet->points.push_back(vecteur);
...
}

Postes l'appel de cette fonction. Je dirais que tu envoies un pointeur non
valide (par ex. pas alloué) etc...
Et puis, un conseil, évites d'utiliser char * pour des chaines, mais
std::string
Pour passer un obj une référence est mieux qu'un pointeur.
Tu as appris le C, ça se voit ;-)



Back to top
Pierrick
Guest





PostPosted: Wed Jan 14, 2004 3:40 pm    Post subject: Re: pointeur sur une classe ? Reply with quote

"Tu as appris le C, ça se voit"
oui plein d'habitudes à perdre vite fait ^__^
Bien vu mon pointeur ne pointait nulle part, vous êtes des chefs !

Merci

Pierrick

Quote:
Postes l'appel de cette fonction. Je dirais que tu envoies un pointeur non
valide (par ex. pas alloué) etc...
Et puis, un conseil, évites d'utiliser char * pour des chaines, mais
std::string
Pour passer un obj une référence est mieux qu'un pointeur.
Tu as appris le C, ça se voit Wink




Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.