[ C ] Tableau ( simple )
Bonsoir,
J'ai un tableau de type long et j'aimerai pouvoir compter ces cellulles, le hic c'est que strlen n'est pas approprier étant donner qu'il n'est pas de type char.
Merci
J'ai un tableau de type long et j'aimerai pouvoir compter ces cellulles, le hic c'est que strlen n'est pas approprier étant donner qu'il n'est pas de type char.
Merci
Configuration: Windows XP Firefox 3.0.7
5 réponses
-
tu veux compter les cellules remplies? parceque a la base tu es censé savoir combien il y en a vu que tu le déclare
-
oui elle sont initialiser a 0 :
long tableau[6] = {0};
Mais c'est pour ma function j'en ai besoin :
void lecture_tableau(long tableau[]){
long i;
for(i = 0; i < strlen(tableau); i++){
printf("%ld | ", tableau[i]);
}
}
Thx -
void lecture_tableau(long tableau[])
{
int i=0; // pas besoin de long pour un compteur
while((tableau[i]!=0)&&(i<6))
{
i++;
printf("%ld | ", tableau[i]);
}
} -
ContributeurSalut,
Tu connais la taille du tableau lors de sa déclaration. Mais si tu veux la recalculer, tu peux utiliser l'opérateur sizeof.
long tableau[6] = {0}; size_t taille=sizeof tableau/sizeof *tableau;
Ou alors, tu peux faire tout simplement :#define MAX 6 long tableau[MAX]={0}; //MAX contient la taille du tableau
Sinon, je corrige ta fonction d'affichage :
void lecture_tableau(long tableau[], const int taille){ //tu dois faire passer la taille en argument ou alors tu peux utiliser la constante MAX définie avec #define comme expliqué ci-dessous. long i; for(i = 0; i < taille; i++){ //for(i=0;i<taille && tableau[i];i++) si tu ne souhaites pas afficher les éléments nuls. printf("%ld | ", tableau[i]); } }
Cdlt -
ContributeurSalut.
quelque lacune avec sizeof.
Tu ne pourrai pas l'utiliser dans le corps de la fonction pour connaître la taille du tableau ?-
ContributeurTu ne pourrai pas l'utiliser dans le corps de la fonction pour connaître la taille du tableau ?
Non. En C, on n'envoie pas le tableau en argument de fonctions mais un pointeur sur la première case du tableau.
Par conséquent, le sizeof te retournera la taille du pointeur, et non du tableau.
Cdlt
-