Maison > développement back-end > C++ > le corps du texte

Comment puis-je déterminer la taille d'un tableau C passé en paramètre de fonction ?

DDD
Libérer: 2024-11-24 08:17:10
original
565 Les gens l'ont consulté

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

Détermination de la taille d'un tableau dans les paramètres de fonction C

En C, les tableaux sont implicitement convertis en pointeurs lorsqu'ils sont transmis en tant que paramètres de fonction. Cela signifie que les informations de taille sont perdues et qu'un accès direct à la taille du tableau dans la fonction n'est pas possible.

Dans votre extrait de code :

void makeVectorData(float p_vertData[]) {   
 int num = (sizeof(p_vertData)/sizeof(int)); 
}
Copier après la connexion

sizeof(p_vertData) récupère la taille du pointeur vers le tableau, pas le tableau lui-même. Puisqu'un pointeur nécessite 32 bits (sur un système 32 bits), num sera égal à 1, quelle que soit la taille réelle du tableau.

Solution :

Pour accéder à la taille du tableau, vous pouvez passer un paramètre séparé indiquant la taille :

void makeVectorData(float p_vertData[], int size) {   
 int num = size; 
}
Copier après la connexion

Dans l'appelant, vous spécifierez alors le la taille du tableau comme argument :

makeVectorData(verts, sizeof(verts) / sizeof(float));
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal