Les tableaux sont l'une des formes de stockage de données les plus fréquemment utilisées au cours du fonctionnement du programme. Ils permettent d'organiser les éléments du même type dans une séquence ordonnée et d'y accéder rapidement par index. Très souvent, lors du développement d'applications dans des langages de programmation puissants et flexibles permettant un accès direct à la mémoire, tels que C++, vous devez déterminer la taille du tableau.
Nécessaire
Compilateur C++
Instructions
Étape 1
Déterminez la taille du tableau au moment de la compilation en la calculant à l'aide de l'opérateur sizeof. Cet opérateur renvoie la quantité de mémoire (en octets) occupée par l'argument qui lui est passé. L'argument peut être une variable ou un identificateur de type. L'opérateur sizeof renvoie la quantité finie de mémoire occupée par l'objet au stade de l'exécution du programme (en tenant compte par exemple des paramètres d'alignement des champs de la structure), mais son calcul est effectué au stade de la compilation.
Étape 2
Pour déterminer la taille d'un tableau à l'aide de l'opérateur sizeof, divisez sa taille entière par la taille d'un élément. Par exemple, si vous avez la définition suivante d'un tableau: int aTemp = {10, 20, 0xFFFF, -1, 16}, alors sa taille peut être calculée comme: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);
Étape 3
Pour une utilisation plus pratique de cette méthode, il est logique de définir une macro: #define countof (a) (sizeof (a) / sizeof (a [0])) Notez que puisque la valeur de l'opérateur sizeof est calculée à la compilation moment, au moment où le calcul est effectué, les informations sur le volume du réseau et de ses éléments doivent être disponibles explicitement. En d'autres termes, il est impossible de déterminer les paramètres d'un tableau de taille inconnue par sa déclaration externe.
Étape 4
Déterminez la taille du tableau pendant l'exécution du programme, en utilisant le signe connu de sa fin. L'une des approches permettant de stocker et de transmettre des données sous forme de tableaux de longueur indéfinie consiste à attribuer une valeur spéciale à un signe indiquant l'achèvement d'une séquence de données. Par exemple, les chaînes de style C à un octet qui sont des tableaux de caractères doivent se terminer par la valeur 0, les tableaux de chaînes C de longueur variable condensés se terminent par zéro et les tableaux de pointeurs doivent se terminer par zéro.
Étape 5
Pour déterminer la taille d'un tableau représenté de cette manière, scannez-le élément par élément jusqu'à ce que vous trouviez l'élément de terminaison. Incrémentez le compteur initialisé à zéro pendant le balayage. Ou, augmentez la valeur du pointeur vers un élément du tableau, et après l'analyse, calculez la différence entre les pointeurs vers les éléments actuels et les premiers.
Étape 6
Obtenez la taille d'un tableau dynamique représenté par un framework ou un objet de bibliothèque en appelant sa méthode. Toutes les classes qui encapsulent la fonctionnalité de tels tableaux ont des méthodes pour obtenir le nombre actuel d'éléments. Par exemple, la classe de modèle vectoriel std:: de la bibliothèque standard C ++ a une méthode size, la classe QVector du framework Qt a une méthode count et la classe CArray analogue du MFC a une méthode GetCount.