A voir également:
- Pointeurs en C
- Pointeurs photoshop problème ✓ - Forum Photoshop
- [Souris] Pointeurs inversé ? - Forum souris / Touchpad
- Placer les pointeurs statistiques??? ✓ - Forum Webmastering
- 2 pointeurs de souris sur un écran ✓ - Forum souris / Touchpad
- Inverser un tableau en c avec pointeur ✓ - Forum Programmation
3 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
23 févr. 2008 à 16:20
23 févr. 2008 à 16:20
Salut,
voici un exemple sans pointeur de pointeur, mais le passage directement par adresse en utilisant &
il faut écrire
voici un exemple sans pointeur de pointeur, mais le passage directement par adresse en utilisant &
#include<stdio.h> int compte_char(char **chaine); int main() { char *chaine = "Salut tout le monde!\n"; printf("%d\n",compte_char(&chaine)); return 0; } int compte_char(char **chaine){ int i=0; while((*chaine)[i++] != '\0') ; return i; }dans ton cas
il faut écrire
char **p; char *chaine = "Salut tout le monde!\n"; p = &chaine; printf("%d\n",compte_mots(p));voici un exemple
#include<stdio.h> int compte_char(char **chaine); int main() { char **p; char *chaine = "Salut tout le monde!\n"; p = &chaine; printf("%d\n",compte_char(p)); return 0; } int compte_char(char **chaine){ int i=0; while((*chaine)[i++] != '\0') ; return i; }
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
23 févr. 2008 à 16:21
23 févr. 2008 à 16:21
et ben je vois que ta fonction prend en parametre un char ** et toi tu lui envoi un char *
de plus si tu veut metre "il fait beau" dans *p il te faut utiliser strcpy() sans oublier allouer de la memoire au pointeur avant
et le prototype
int compte_mots(char *ptab_mots)
de plus si tu veut metre "il fait beau" dans *p il te faut utiliser strcpy() sans oublier allouer de la memoire au pointeur avant
char *p; char *chaine="il fait beau"; p=(char *)malloc(20); strcpy(p,chaine); compte_mots(p);
et le prototype
int compte_mots(char *ptab_mots)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
23 févr. 2008 à 16:24
23 févr. 2008 à 16:24
Salut,
dans son cas il n'y a pas besoin de malloc ;-)
dans son cas il n'y a pas besoin de malloc ;-)
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
23 févr. 2008 à 16:32
23 févr. 2008 à 16:32
c'est vrai que ta solution est plus simple lami20j ;)
popop200
>
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
23 févr. 2008 à 17:22
23 févr. 2008 à 17:22
Ok merci, c'est bien comme tu dis lami20j, sauf que maintenant je ne comprend pas, quoi que j'écrive dans ma chaine de caractères, cela me renvoie 13. Bizarre .Pourtant j'ai vérifié ma fonction, je vois pas ce qui cloche, peut être pourrais-tu y trouver quelque chose qui va pas :
int compte_mots(char **ptab_mots){
int cpt=0;
while(ptab_mots[cpt])
cpt++;
return cpt;}
Merci d'avance.
int compte_mots(char **ptab_mots){
int cpt=0;
while(ptab_mots[cpt])
cpt++;
return cpt;}
Merci d'avance.