Taille char** en C
Fermé
nounou_89
Messages postés
44
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
20 mars 2014
-
3 mai 2011 à 14:50
nounou_89 Messages postés 44 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 20 mars 2014 - 9 mai 2011 à 16:01
nounou_89 Messages postés 44 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 20 mars 2014 - 9 mai 2011 à 16:01
A voir également:
- Char **
- Coco char - Accueil - Réseaux sociaux
- Convertir char en int c - Forum C
- Char(10) excel francais ✓ - Forum Excel
- Char ** en C - Forum C
- C'est quoi le site qui remplace coco chat ✓ - Forum Réseaux sociaux
1 réponse
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
3 mai 2011 à 14:58
3 mai 2011 à 14:58
bonjour,
tab est un pointeur de pointeur de char, ce n'est pas un tableau, il est impossible de connaitre sa taille.
tab est un pointeur de pointeur de char, ce n'est pas un tableau, il est impossible de connaitre sa taille.
3 mai 2011 à 15:30
char *pays[7] = {"Maroc","Mauritanie","Marseille","Martinique","France","Marcel","Portugal"};
ceci est un exemple mais en faite je cherche le 7 que je suis suposé ne pas connaitre
3 mai 2011 à 16:28
Le problème, c'est qu'une foi passer en paramètre de la fonction on ne peut plus connaitre la taille de "pays". Sauf peut être (à vérifier, mais je n'y crois pas) si tu lui spécifie que tu passe réellement un tableau :
int taille_tableau(char* tab[]){
ou alors tu ajoute une taille à ton tableau pour faire le test comme tu veux. :
char *pays[8] = {"Maroc","Mauritanie","Marseille","Martinique","France","Marcel","Portugal",0};
3 mai 2011 à 21:25
Je confirme. Ca enverra bien un pointeur. En C, on ne peut passer de tableaux en paramètre.
3 mai 2011 à 21:29
Tu peux déterminer le nombre d'éléments via : sizeof pays/sizeof *pays;
Mais tu ne pourras pas envoyer le tableau en paramètre de fonction, tu n'enverras qu'un pointeur dessus. Deux solutions : comme te propose Char Snipeur, tu ajoutes une valeur nulle en fin de tableau. Mais en général en C, on envoie tout simplement la taille en paramètre également.
int taille_tableau(char** tab, const size_t sz)
Et pour appeler la fonction : taille_tableau(tab, sizeof tab/sizeof *tab);
Cdlt,
9 mai 2011 à 16:01