Maison >développement back-end >C++ >Comment puis-je obtenir la taille d'un tableau lors de l'utilisation de pointeurs en C ?

Comment puis-je obtenir la taille d'un tableau lors de l'utilisation de pointeurs en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 05:41:10229parcourir

How Can I Get the Size of an Array When Using Pointers in C  ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn