Maison > développement back-end > C++ > Comment puis-je déterminer la taille d'un tableau C passé comme pointeur vers une fonction ?

Comment puis-je déterminer la taille d'un tableau C passé comme pointeur vers une fonction ?

Susan Sarandon
Libérer: 2024-12-12 10:38:18
original
704 Les gens l'ont consulté

How Can I Determine the Size of a C   Array Passed as a Pointer to a Function?

Détermination de la taille d'un tableau à partir d'un pointeur en C

Lorsque vous travaillez avec des tableaux en C , il peut être nécessaire de déterminer leur taille. Cependant, lors du passage d'un tableau comme argument de fonction, il se désintègre en un pointeur, ne laissant aucune information explicite sur la taille.

Approches incorrectes

  • sizeof list/sizeof(int) : Cette méthode tente de déterminer la taille du tableau à l'aide de l'opérateur sizeof, mais elle divise par la taille de int au lieu de la taille réelle du tableau. size.
  • list.size() : Cette méthode ne peut pas être utilisée car ce n'est pas une fonction membre du type tableau int.

Détermination de la taille Correctement

L'approche correcte pour déterminer la taille d'un tableau à partir d'un pointeur est de transmettre la taille en tant que valeur supplémentaire argument.

int largest(int *list, int highest_index)
{
  // ...
}
Copier après la connexion

Pour utiliser cette fonction, passez le tableau et sa taille comme arguments :

int array[] = {1, 2, 3, 4, 5};
int size = sizeof(array) / sizeof(int); // Calculate array size
int max = largest(array, size);
Copier après la connexion

Équivalence tableau/pointeur

C hérite de l'équivalence tableau/pointeur à partir de C, qui permet aux tableaux de se décomposer en pointeurs lorsqu'ils sont transmis aux fonctions. Ce comportement signifie que le pointeur ne contient aucune information de taille.

Disposition de la mémoire

Comprendre la disposition de la mémoire des tableaux est crucial. Lorsqu'un tableau est déclaré, une mémoire contiguë est allouée pour stocker ses éléments. Le pointeur vers le premier élément implique le début du tableau, mais il ne porte aucune information sur sa taille.

Conclusion

Pour déterminer avec précision la taille d'un tableau à partir d'un pointeur en C , il est nécessaire de passer la taille en argument supplémentaire à la fonction qui traite le tableau. Cette approche garantit que la fonction a accès aux informations requises.

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