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

Comment puis-je déterminer la taille d'un tableau passé en pointeur en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 06:42:121003parcourir

How Can I Determine the Size of an Array Passed as a Pointer in C  ?

Détermination de la taille d'un tableau avec un pointeur

En C, où un tableau se désintègre en un pointeur, récupérer la taille du tableau à partir du pointeur peut être difficile.

Problème

Trouver la taille d'un tableau passé en pointeur nécessite des informations supplémentaires, comme le pointeur lui-même ne contient pas ces données.

Solution

Pour résoudre ce problème, deux approches sont disponibles :

  1. Passer les informations sur la taille comme argument : Envoie la taille du tableau comme paramètre supplémentaire à la fonction. Par exemple :

    func(int* array, size_t arraySize);
  2. Utilisation de la syntaxe du tableau : Si la taille du tableau est connue à l'avance, le transmettre en tant que tableau de taille fixe produit le même effet :

    func(int array[5]);

Explication

Le pointeur La règle de désintégration permet aux tableaux de se comporter comme des pointeurs, mais cela n'implique pas qu'ils soient intrinsèquement des pointeurs. Ils se désintègrent simplement en pointeurs lorsqu'ils sont passés comme arguments de fonction.

Pour déterminer la taille du tableau à partir d'un pointeur, des informations de taille supplémentaires doivent être fournies. Ceci peut être réalisé en passant explicitement la taille comme argument ou en utilisant la syntaxe de tableau, qui inclut les informations de taille dans la déclaration.

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