> Tech > Utiliser des tableaux multidimensionnels

Utiliser des tableaux multidimensionnels

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La figure 3 présente des fragments de code exemples utilisant des tableaux multidimensionnels simulés. En A, le code définit deux tableaux, Array01 et Array02. Array01 contient 1000 éléments, le produit du nombre d'éléments de chacune de ses deux “ dimensions ” (20 multiplié par 50). De la même façon, Array02 possède 600

Utiliser des tableaux multidimensionnels

éléments, le produit du nombre d’éléments contenus dans chacune de ses trois dimensions (4 fois 15 fois 10).Pour manipuler les tableaux comme des tableaux multidimensionnels, j’utilise des descripteurs de tableau pour définir les attributs multidimensionnels. Un descripteur de tableau correspond tout simplement à  un jeu de valeurs numériques contiguà«s pouvant être défini comme un tableau ou une structure de données. En ce qui me concerne, je définis les deux descripteurs de tableau comme des structures de données (en B) pour pouvoir définir des valeurs initiales pour les éléments au moment de la compilation sans qu’il soit nécessaire de créer un tableau chargé à  la compilation. Dans la plupart des cas, vous constaterez qu’il est plus simple de définir les descripteurs de tableau comme des structures de données.
Le premier élément d’un descripteur doit contenir le nombre de dimensions contenues dans le tableau multidimensionnel simulé. Par exemple, la première entrée de la structure de données Dsc01 contient la valeur 2 pour indiquer qu’Array01 possède deux dimensions. Les sections suivantes du descripteur spécifient le nombre d’éléments de chaque dimension du tableau. La procédure GetArrayIdx du programme de service MultiDim utilise ces descripteurs pour calculer l’index réel du tableau à  partir des index multidimensionnels.
Les handles de tableau uniques sont définis en C. La procédure GetArrayIdx utilise ces handles pour extraire les descripteurs de tableau. En D, le code de l’exemple utilise la procédure GetArrayHdl pour extraire les handles des tableaux. Si la procédure échoue, le handle se voit affecter la valeur 0. Le programme vérifie que le handle possède bien une valeur différente de zéro avant que la procédure GetArrayIdx ne l’utilise.
En E, le code indique comment enregistrer des informations dans les tableaux. Il vérifie d’abord si le handle du tableau est valide. Si c’est le cas, le code fixe la valeur du champ qui contient la valeur à  enregistrer dans le tableau puis il fixe les index multidimensionnels. Le code invoque ensuite la procédure GetArrayIdx pour extraire l’index de tableau réel. Lorsque l’appel à  GetArrayIdx réussit, la valeur est enregistrée dans le tableau.
En F, on indique comment extraire les informations à  partir des tableaux en utilisant des index multidimensionnels. Ce code utilise des processus similaires à  ceux utilisés pour entreposer les informations dans le tableau.
Notez en G l’appel à  la procédure MultiClnup, la routine de nettoyage du programme de service MultiDim. Il est nécessaire d’appeler cette procédure lorsqu’on a fini de travailler avec les tableaux multidimensionnels. Dans le cas contraire, on risque d’obtenir des résultats imprévisibles si le même travail invoque à  nouveau le programme de service. Notez aussi que le code de la figure 3 contient une vérification minimale des erreurs. Pour prévenir les problèmes d’exécution, les applications doivent inclure de puissantes routines de gestion des erreurs.

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010