Bonjour,
Je m'en remet aux experts, parceque là je sèche...
j'ai une fonction :
void f(char* ch=0)
{
ch=new char[6];
strcpy(ch,"essai");
}
Dans le main, je fait :
char* ch="abcde";
f(ch);
en fesant des sorties ecran, ch vaut bien "abcde" avant la fonction f, MAIS aussi après !
Or en passant un pointeur je me serai attendu à ce que la valeur de ch soit modifer ! En fesant des sortie dans la fonction, ch est bien modifier.
J'ai donc fait les sortie des adresses. Il se trouve que l'adresse qui est passer à la fonction est différent de celle du main.
L'adresse est bien modifier dans f par l'opérateur new, mais la modif n'est pas reporter dans le ch du main.
Bref, c'est à perdre son C++ de base.
Pour moi, quand on passe un pointeur, on passe un pointeur !! et pas un nouvel objet créer spécialement pour la fonction et initialiser avec la valeur pointé par le pointeur passé en argument.

