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
Libérer: 2024-12-03 05:41:10
original
282 Les gens l'ont consulté

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]);'
Copier après la connexion

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);
Copier après la connexion

Personnalisation de la fonction pour accepter le pointeur de tableau et sa taille directement :

int largest(int* array, size_t size);
Copier après la connexion

Vous pouvez également exploiter le sucre syntaxique pour définir le tableau avec un fixe size :

void func(int array[5]);
Copier après la connexion

Cependant, il s'agit d'un sucre syntaxique pour une déclaration de pointeur de tableau :

void func(int* array);
Copier après la connexion

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]);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal