Roro8883
Messages postés70Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention 1 février 2008
-
2 mars 2006 à 21:52
Roro8883
Messages postés70Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention 1 février 2008
-
3 mars 2006 à 12:18
Bonjour, comment peut-on déclarer une variable globale à l'intérieur d'une fonction ???
Je m'explique, voici mon code (très simplifié) :
void initialisation ()
{
int nb_prog;
... // Définition de l'entier de nb_prog
char* chaine[(nb_prog - 1)];
...
}
et j'aimerais que la variable (tableau) "chaine" soit accessible dans d'autres fonctions.Le problème c'est que cette variable dépend de celle d'avant.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201013 2 mars 2006 à 22:09
char* chaine[(nb_prog - 1)];
Déja tu n'a pas le droit d'écrire ca (même si gcc l'accepte). Considère que la taille d'un tableau doit être une constante. Voila comment tu peux faire:
char** chaine;
void initialisation ()
{
int nb_prog;
... // Définition de l'entier de nb_prog
chaine = new char*[nb_prog - 1];
...
}
theneoiceman
Messages postés78Date d'inscriptionlundi 14 avril 2003StatutMembreDernière intervention23 avril 2010 3 mars 2006 à 01:16
En supplément de ce que Vecchio56 a dit pense a bien libérer la mémoire allouée par le new a l'aide de l'opérateur delete[] . Cette opération est souvent négligée bien que très importante.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 3 mars 2006 à 02:06
En gros, une variable globale doit toujours être déclaré à l'extérieure de toute fonction et généralement, au début de ton code. Ainsi, cette variable ne sera éffacé qu'a la fin du programme et non à la fin de la fonction et toute donné qu'elle contient peut être utiliser ou redéfinie par toute fonction l'utilisant
Vous n’avez pas trouvé la réponse que vous recherchez ?