Modifié un pointeur dans une fct en C
rocksider
Messages postés
107
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
je voudrai pouvoir changer l'adresse du pointeur v à l'aide de la fct sans avoir a retourné la chaine,
et avec le code que j'ai en dessous je peux changer juste le contenu et non l'adresse, auriez vous une idée pour remedier au probleme ? et merci d'avance ^^
voici le code:
je voudrai pouvoir changer l'adresse du pointeur v à l'aide de la fct sans avoir a retourné la chaine,
et avec le code que j'ai en dessous je peux changer juste le contenu et non l'adresse, auriez vous une idée pour remedier au probleme ? et merci d'avance ^^
voici le code:
int fct(char *ex)
{
ex++;
}
int main(void)
{
char c[10],*v;
int a;
v=c;
printf("avant: %d",v);
a=fct(v);
printf("apres: %d",v);
return 0;
}
A voir également:
- Modifié un pointeur dans une fct en C
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Samira a modifié le menu du jour que juliette lui avait envoyé. retrouvez les modifications proposées par samira : acceptez celles concernant les entrées, refusez celles concernant les plats et les desserts. combien de caractères (en incluant les espaces) contient la version finale du menu ? - Forum Matériel & Système
- Comment savoir qui a modifié un document word - Guide
- Jason a réalisé un photo-montage pour tromper et amuser ses camarades. il a modifié un élément sur une photo de neil armstrong marchant sur la lune. lequel ? - Forum Jeux vidéo
3 réponses
J'ai trouvé avec un peu de chance, xD, esseye de le comprendre au moment meme :
Merci tous de meme ^^
Merci tous de meme ^^
#include<stdio.h>
void fct(char **ex)
{
(*ex)++;
}
int main(void)
{
char c[10],*v;
v=c;
printf("avant: %d",v);
fct(&v);
printf("\napres: %d",v);
return 0;
}
Ué c'est plus clair :) merci bcp fiddy ^^ (y)(y)
au fait on utilise le meme truc ( les **) si on veut passer en parametre une matrice,comment celà ?
au fait on utilise le meme truc ( les **) si on veut passer en parametre une matrice,comment celà ?
Donc j'imagine que tu sais pas trop pourquoi il faut faire comme ça ^^.
Petite explication.
En C, lorsque tu envoies un type natif (int, char, ...) en tant qu'arguments, celui-ci se fait par copie. Ainsi si tu souhaites modifier une variable (int par exemple) dans une fonction, il te faudra utiliser un pointeur.
Il en va de même pour modifier le pointeur lui-même. Si tu mets un simple pointeur, cela sera la copie de l'adresse de la zone pointée. Ainsi pour modifier l'adresse du pointeur dans la fonction, il faut utiliser un pointeur sur le pointeur, soit un double pointeur.
J'espère que c'est plus clair.
Cdlt