Pointeurs et tableau de char ? [Résolu]

Messages postés
15
Date d'inscription
mercredi 8 juin 2011
Statut
Membre
Dernière intervention
17 juin 2013
- - Dernière réponse : cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
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 

4 réponses

Meilleure réponse
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
7
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 198 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
Statut
Membre
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
Statut
Membre
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
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
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