Taille char** en C
nounou_89
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
nounou_89 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
nounou_89 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une tableau de type char** p =...
et je souhaiterai recupere la taille du tableau j'ai essayé de faire comme sa mais sa marche pas
int taille_tableau(char** tab){
int i=0;
char* mot;
if(tab != NULL){
while((mot=tab[i]) != NULL){
i++;
}
return i;
}
return 0;
}
merci d'avance
J'ai une tableau de type char** p =...
et je souhaiterai recupere la taille du tableau j'ai essayé de faire comme sa mais sa marche pas
int taille_tableau(char** tab){
int i=0;
char* mot;
if(tab != NULL){
while((mot=tab[i]) != NULL){
i++;
}
return i;
}
return 0;
}
merci d'avance
A voir également:
- Char **
- Coco char - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Convertir char en int c ✓ - Forum C
- If char ✓ - Forum Programmation
- Conversion int to char en C - Forum C
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
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};
Je confirme. Ca enverra bien un pointeur. En C, on ne peut passer de tableaux en paramètre.
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,