[c++] char * en param de fonction

Résolu/Fermé
hof - 29 janv. 2009 à 23:12
 hof - 29 janv. 2009 à 23:36
Bonjour,

voici une version simplifié de mon code

void ma fonction(){
char * nom=NULL;

creerNom(nom);
cout<<nom<<endl; // ca plante ici
}

void creerNom(char * p ){
p = "fred";
cout<<p<<endl; // ca marche
}

ca passe a la compile mais a l'execution ca plante a cause du "char *"
je ne peux utiliser qu'un char *, pas de string
je vois pas trop quoi faire, pourrize vous m'aider

merci d'avance
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
29 janv. 2009 à 23:18
Salut,
Normal, tu passes une copie du pointeur. Donc il ne sera pas modifié par la fonction. Tu dois utiliser un double pointeur.
Teste plutôt :
void creerNom(char ** p ){
*p = "fred";
cout<< *p<<end;
} 

Et pour l'appeler :
char *nom=NULL;
creerNom(&nom);

Cdlt
0
merci
0