Pb Class et pointeur ...

cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005 - 8 nov. 2002 à 15:15
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 - 8 nov. 2002 à 15:34
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

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
8 nov. 2002 à 15:34
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...;

};
0
Rejoignez-nous