 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Pierrick Guest
|
Posted: Wed Jan 14, 2004 12:02 am Post subject: pointeur sur une classe ? |
|
|
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
|
Posted: Wed Jan 14, 2004 12:10 am Post subject: Re: pointeur sur une classe ? |
|
|
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
|
Posted: Wed Jan 14, 2004 12:17 pm Post subject: Re: pointeur sur une classe ? |
|
|
| 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
|
Posted: Wed Jan 14, 2004 3:40 pm Post subject: Re: pointeur sur une classe ? |
|
|
"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
|
|
|
| Back to top |
|
 |
|
|
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
|
|