Perte de valeur dans une variable globale

icedreamer Messages postés 26 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 21 avril 2005 - 3 mars 2004 à 12:42
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 3 mars 2004 à 13:42
Bonjour,

J'ai un problème avec une variable globale...

Elle est définie de la manière suivante dans mon main.c

char* mavariable = "";

Puis je fais appel à une fonction perso qui renvoie le chemin d'un fichier (ex:c:\toto\tata.txt)
Elle est définie comme suit : char* mafct(param1,param2).
Je stocke le résultat dans cette variable globale pour une réutilisation...mais là j'ai un prob.

Lorsque je rappelle cette variable, je n'ai plus mon info !!!

Je ne comprends pas pourquoi ?

Merci de votre aide.
Note : J'utilise DevC++ 4.9.8.7 et je programme en c et non cpp

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2004 à 13:11
char* mavariable definit un POINTEUR et donc doit POINTER sur un buffer valide si tu veux recuperer ce qu'il y a dans le buffer.

ciao...
BruNews, Admin CS, MVP Visual C++
0
icedreamer Messages postés 26 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 21 avril 2005
3 mars 2004 à 13:33
Merci mais tu pourrais être plus clair ... (je débute) avec un exemple plus précis.

Merci.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2004 à 13:42
char buff[264];
char *myptr = 0;

strcpy(buff, "c:\\machin\\bidule.txt");
myptr = buffer; // OK car pointe sur zone valide

Ni on ecrit ni on ne remplit quoi que ce soit sur un pointeur car ce n'est qu'un 32 bits qui reference une adresse memoire.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous