| auteur : Comtois |
Un tableau statique dans une structure ne se comporte pas de la même façon qu'un tableau défini avec la commande Dim. Ceci pour être conforme au format de structures en C/C++ (pour permettre un portage direct des structures de l'API). Ce qui signifie que a[2] assignera un tableau de 0 à 1 (deux éléments) alors que Dim a(2) assignera un tableau de 0 à 2 (trois éléments).
Structure MaStructure
TableauStatique.l[2 ]
EndStructure
Dim Tableau.l(2 )
|
|
| auteur : Comtois |
Par défaut un tableau est local, pour le rendre global il suffit d'ajouter le mot clé Global devant la déclaration du tableau.
Dim TableauLocal.l(10 )
Global Dim TableauGlobal.l(10 )
|
|
| auteur : Comtois |
Pour passer un tableau en paramètre d'une procédure, il suffit d'indiquer le nombre de dimensions du tableau dans le paramètre de la procédure et d'appeler la procédure en indiquant l'adresse du tableau.
- Tableau() renvoie l'adresse du tableau, vous pouvez également écrire @Tableau().
Procedure Modifier(ptr.point(2 ))
ptr(1 ,3 )\x= 10
EndProcedure
Dim Tableau.point(2 ,5 )
Tableau(1 ,3 )\x= 15
Tableau(1 ,3 )\y= 23
Modifier(Tableau())
|
|
| auteurs : Bob, Emmanuel Delahaye, Comtois |
Pour copier un tableau vers un autre, on a deux solutions. La première consiste à copier chaque case du tableau numéro 1 dans la case correspondante du tableau numéro 2. Mais cette manière est parfois complexe et risque d'être lente.
La deuxième possibilité est d'utiliser la fonction CopyMemory(). Elle admet trois paramètres, le premier étant le tableau source et le deuxième le tableau destination. Enfin, le troisième est le nombre d'octets à copier. Par exemple, pour copier le tableau Tableau1 dans le tableau Tableau2, il suffit de faire :
Dim Tableau1.point(10 )
Dim Tableau2.point(10 )
CopyMemory(Tableau1(), Tableau2(), SizeOf(point)* 11 )
|
|
lien : Différence entre un tableau et un tableau statique dans une structure ?
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|