Maison >développement back-end >C++ >Comment puis-je obtenir la taille d'un tableau en C lors de l'utilisation de pointeurs ?
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!