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

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

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 08:51:41277parcourir

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

Obtention de la taille d'un tableau à partir d'un pointeur en C

Lorsque vous travaillez avec des tableaux en C, une tâche courante consiste à déterminer la taille ou le nombre de éléments dans un tableau. Cependant, cela peut être délicat lors de l'accès au tableau via un pointeur.

Problème lié à la détermination de la taille du tableau à partir du pointeur

Considérez l'en-tête de fonction suivant :

int largest(int *list, int highest_index);

Cette fonction est conçue pour renvoyer le plus grand entier dans un tableau d'entiers. Le problème survient lorsque vous essayez de déterminer le nombre d'éléments dans le tableau « liste » à l'aide du pointeur.

Méthodes incorrectes

Certaines méthodes incorrectes qui ont été tentées incluent :

int i = sizeof list/sizeof(int); //returns incorrect value
int i = list.size(); // does not compile

Ces méthodes renvoient une valeur incorrecte ou ne se compilent pas car elles supposent que le tableau est intrinsèquement connu par le pointeur.

Approche correcte : transmettre la taille du tableau comme argument

L'approche correcte consiste à transmettre la taille du tableau comme argument supplémentaire à la fonction. Cela permet à la fonction de déterminer le nombre d'éléments dans le tableau.

Par exemple :

static const size_t ArraySize = 5;
int array[ArraySize];
func(array, ArraySize);

Dans cet exemple, la fonction 'func' prend le pointeur du tableau et la taille du tableau comme arguments.

Justification

C permet aux tableaux de se décomposer en pointeurs lorsqu'ils sont passés en fonction arguments. Cependant, les pointeurs en eux-mêmes ne contiennent pas d’informations sur la taille du tableau. En passant la taille du tableau comme argument, la fonction est capable de déterminer correctement le nombre d'éléments dans le tableau.

Conclusion

Lorsque vous travaillez avec des tableaux via des pointeurs, il est essentiel de considérer que les pointeurs ne possèdent pas d’informations inhérentes sur la taille du tableau. La solution est de transmettre la taille du tableau comme argument supplémentaire aux fonctions qui ont besoin de ces informations.

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