Pb Class et pointeur ...

Signaler
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005
-
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
-
salut a tous,

j'ai un petit probleme en C++: j'ai definit une class CImage, avec entre autre, un pointeur vers une variable de type char (char *nom_image;).
Pq un pointeur? Pour pouvoir recuperer le nom de l'image sur la ligne de commande ... Le pb, c que le compilateur compile correctement (VC++), mais qu'a l'execution, ca plante tout de suite : le constructeur n'est meme pas appele (ou en tous cas ca ne marche pas ...

class CImage
{
public:
int nbL, nbC;
unsigned char *image_memoire;
FILE *fichier_image;
char *nom_image;
...

int main(int argc, char *argv[])
{
CImage image;

image.nom_image = argv[1];

return 0;
}

avec ce code, ca plante. Quand, dans la classe je definis nom_image de la maniere suivante :

char nom_image[100],

ca passe, mais je ne peux plus le recuperer de la ligne de commande, puisque je ne peux pas mettre un pointeur dans un tableau de valeurs!!!

Quelqu'un aurait il une solution???
D'avance merci.

1 réponse

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Tu déclares dans ta classe CImage:

#include <windows.h>

class CImage:
{
// ...
char nom_image[MAX_PATH+1];
// ...
};

A l'utilisation,

WinMain
{
// ...
strcpy(image.nom_image, argv[1], strlen(argv[1]));
// ...
}

Ca marche, mais c'est pas "propre". Déjà tes attributs doivent être déclarés en proctected/private dans CImage et ensuite mieux vaut laisser à la classe l'initialisation.

class CImage:
{
public:
CImage(const char*arg)
{
strcpy(....);
}

protected:

char nom_image...;

};