[ C ] Tableau ( simple )

lirycs78 Messages postés 106 Statut Membre -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

5 réponses

vautour88
 
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
0
lirycs78 Messages postés 106 Statut Membre 1
 
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
0
vautour88
 
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]);
}
}
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
L'incrémentation de la variable i est mal placée : la première case ne sera pas affichée et il y aura un segfault lors de la dernière itération.
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,

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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
quelque lacune avec sizeof.
Tu ne pourrai pas l'utiliser dans le corps de la fonction pour connaître la taille du tableau ?
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Tu 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
0