Obtenir la taille d'un tableau à l'aide d'un pointeur en C
Déterminer le nombre d'éléments dans un tableau est crucial lorsqu'on opère sur des tableaux. Cependant, lorsque vous travaillez avec des tableaux comme pointeurs en C , cette tâche devient difficile.
C hérite de "l'équivalence tableau/pointeur" de C. Les tableaux peuvent se décomposer en pointeurs lorsqu'ils sont passés comme arguments de fonction, permettant un code comme :
void func(int* ptr); int array[5]; int* ptr = array; // equivalent to 'ptr = &array[0]' func(array); // equivalent to 'func(&array[0]);'
Dans votre cas, vous transmettez un pointeur vers les éléments du tableau au lieu du tableau lui-même. Par conséquent, le pointeur seul ne contient pas d'informations sur la taille.
Pour gérer cela, vous devez explicitement transmettre la taille comme argument supplémentaire :
static const size_t ArraySize = 5; int array[ArraySize]; largest(array, ArraySize);
Personnalisation de la fonction pour accepter le pointeur de tableau et sa taille directement :
int largest(int* array, size_t size);
Vous pouvez également exploiter le sucre syntaxique pour définir le tableau avec un fixe size :
void func(int array[5]);
Cependant, il s'agit d'un sucre syntaxique pour une déclaration de pointeur de tableau :
void func(int* array);
Lorsque vous avez le tableau lui-même et pas seulement un pointeur, vous pouvez obtenir le nombre de éléments utilisant :
sizeof(array) / sizeof(array[0]);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!