Si tu appliques l'opérateur "sizeof" à un tableau, tu obtiens en retour la taille du tableau.
Si tu appliques l'opérateur "sizeof" à un pointeur, tu obtiens en retour la taille du pointeur, c'est à dire 4. C'est comme ça.
Dans ton programme, la valeur "donnees" est un tableau alors que dans ta fonction, c'est un pointeur.
Lorsque tu passes un tableau à ta fonction (je présume que tu écris l'instruction "traiter_tableau(donnees)" ) tu ne lui passes que l'adresse du premier élément de ton tableau, c'est à dire que c'est comme si tu écrivais "traiter_tableau(&donnees[0])". Comme les éléments d'un tableau se suivent en mémoire, lorsque tu reçois l'adresse du premier élément dans un pointeur, tu peux incrémenter ce pointeur pour obtenir les autres éléments de ton tableau.
Il te suffit juste que ta fonction sache combien d'éléments elle doit traiter. Cette information, tu peux l'avoir
1) soit en la passant à la fonction en second paramètre "traiter_tableau(donnees, 3)"
2) soit ton tableau contient une valeur particulière (appelée "valeur sentinelle" ) et ta fonction boucle jusqu'à ce qu'elle tombe sur cette valeur (c'est comme cela que sont codées les chaînes en C)
3) soit tu décides que ton tableau ne fera que 3 valeurs et tu codes ta fonction pour ne pas dépasser ce nombre
Message édité par Sve@r le 02-10-2004 à 23:00:08
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.