Bonjour
J'ai fait une petite fonction "petite(int *longueur,char *retour)" qui est appelée par un fonction principale "principale(void)", or petite initialise correctement retour mais principal me dit que retour est nulle, savez vous comment resoudre ce problème?
merci d'avance
Ca m'incrit à l'écran,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 void petite(int *longueur,char *retour) { *longueur = 6; retour = new char[*longueur+1]; if (retour) { memset(retour,0,*longueur); strcpy(retour,"petite"); } // à ce stade retour="petite\0" et son adresse mémoire est par exemple 0x003b486e } void principale(void) { char *tmp_retour=NULL; int tmp_longueur=0; petite(&tmp_longueur,tmp_retour); if (longueur>0) { printf("longueur:%d\n",longueur); if (tmp_retour) { printf("%s\n",tmp_retour); } else printf("tmp_retour est nulle\n"); } else printf("longueur est negative ou nulle\n"); }
longueur:6
tmp_retour est nulle
Partager