Pointeurs et tableau de char ? [Résolu]

Messages postés
15
Date d'inscription
mercredi 8 juin 2011
Dernière intervention
17 juin 2013
- - Dernière réponse : cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
- 20 nov. 2011 à 08:41
Bonjour ! J'ai un petit soucis ... voici mon code:
#include 

using namespace std;

void modify(char* ptr[]);

int main()
{
    char mot[]={'a','b','c','d','e','f'}; //j'initialise un tableau
    cout << mot << endl; //je l'affiche
    modify(mot); //je le modifie
    cout << mot << endl; //j'affiche le tableau apres la modifications
    return 0;
}

void modify(char* ptr[])
{
    //ici je veux modifier le tableau qui se trouve a l'adresse de mon pointeur "ptr"
}
 


Je veux, a l'aide d'un pointeur, modifier mon tableau qui est déclaré dans "main"... est-ce possible ?

Merci !
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
6
3
Merci
Bonjour,
Pour ta fonction tu utilises un tableau de pointeurs de char alors qu'il ne faut qu'un pointeur de char:
modify(char* ptr)
Bon codage


louis

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_louis14
Messages postés
15
Date d'inscription
mercredi 8 juin 2011
Dernière intervention
17 juin 2013
0
Merci
Merci ! J'ai fait ceci :

void modify(char *ptr);

int main()
{
    char mot[]={'a','b','c','d','e','f'}; //j'initialise un tableau
    cout << mot << endl; //je l'affiche
    modify(mot); //je le modifie
    cout << mot << endl; //j'affiche le tableau apres la modifications
    return 0;
    return 0;
}

void modify(char *ptr)
{
    ptr[0]='f';
}


la sortie :

-abcdef
-fbcdef

Perfecto !
Commenter la réponse de phyyl
Messages postés
15
Date d'inscription
mercredi 8 juin 2011
Dernière intervention
17 juin 2013
0
Merci
Par contre, si je remplace ma fonction modify par ceci :
ptr="dsfhhf";


ca ne marche plus ! (le code s'execute mais la sortie est la meme avant et apres le changement ... :S
Commenter la réponse de phyyl
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
11
0
Merci
Bonjour,

C'est tout à fait normal. ptr est juste un char* passé par valeur. Le faire pointer sur autre chose n'a aucune influence sur "mot" dans le main.

Suivant ce que tu veux faire, tu peux passer par strcpy, ou passer en paramètre un char**.
Cours sur les pointeurs.

Mais on dirait que tu fais du C++ (iostream), donc tu peux aussi passer par la classe string.
Commenter la réponse de cs_rt15

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.