Modifié un pointeur dans une fct en C
Fermé
rocksider
Messages postés
106
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
16 mars 2012
-
10 avril 2009 à 01:11
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 avril 2009 à 12:30
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 avril 2009 à 12:30
A voir également:
- Modifié un pointeur dans une fct en C
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Pointeur souris disparu windows 10 - Guide
- Pointeur souris - Guide
3 réponses
rocksider
Messages postés
106
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
16 mars 2012
9
10 avril 2009 à 01:40
10 avril 2009 à 01:40
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; }
rocksider
Messages postés
106
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
16 mars 2012
9
10 avril 2009 à 03:11
10 avril 2009 à 03:11
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à ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
10 avril 2009 à 12:30
10 avril 2009 à 12:30
au fait on utilise le meme truc ( les **) si on veut passer en parametre une matrice,comment celà ?
Non, on utilise plutôt :
void exemple(int argument[][TAILLE]);
ou
void exemple(int (*argument)[TAILLE]);
Note : Aucune différence entre les deux notations.
Cdlt
Non, on utilise plutôt :
void exemple(int argument[][TAILLE]);
ou
void exemple(int (*argument)[TAILLE]);
Note : Aucune différence entre les deux notations.
Cdlt
10 avril 2009 à 02:04
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