Bonjour,
J'ai quelques questions à propos du code suivant:
la chaine ch pointe sur le même zone mémoire que c, qui est "coucou"..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void fct(char **ch){ char *c = "coucou"; *ch = c; } int main(){ char *ch = NULL; fct(&ch); printf("\nch = %s",ch); return 0; }
la question est :
Le fait que c est une variable locale, elle sera détruite à la fin de la fonction, donc pourquoi ch contient t-elle tjs la chaine coucou?
autrement dit, qui est détruit à la fin de la fonction, la zone mémoire pointée par c ou juste le lien (le pointeur c)?
Quel impacts si échange de chaines de cette façon ?
Merci,
zentaf.
Partager