Maison > développement back-end > C++ > Comment puis-je déterminer la taille d'un tableau C passé en paramètre de fonction ?

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

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