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
Susan Sarandonoriginal
2024-12-12 10:38:18713parcourir

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)
{
  // ...
}

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);

É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!

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