Bonjour,

J'ai quelques questions à propos du code suivant:

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 chaine ch pointe sur le même zone mémoire que c, qui est "coucou"..

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.