Page 1 sur 1

structure et tableau

Publié : ven. 23/juin/2006 17:58
par Thyphoon
Peut être que ma question va vous parraitre idiote, mais j'ai besoin de definir des tableaux dans une structure. Et j'ai découver que dans une structure si DIm montableau.l(50) ne fonctionne pas on peu utiliser les crochets comme cela

Code : Tout sélectionner

Structure
x.l
y.l
NbSprite
Sprite.l[50]
Endstructure
Est ce que ce code est bon ou bien si ça marche c'est un coup de chance ? quel est la différence enter les "()" et les "[]" ? (j'ai rien trouvé dans la notice a ce propos)

Publié : ven. 23/juin/2006 18:13
par Guimauve
Ce n'est pas un coup de chance. Les Dim doivent être utilisé pour créer un tableau tout seul dans le programme.

Dans une structure pour faire un tableau il faut absolument utliser les crochets.

Code : Tout sélectionner

Structure MaStruct

    PosX.w
    PosY.w
    NbSprite.l
    SpriteID.l[50]

EndStructure
à noter que les tableaux dans les structures sont statiques et ne peuvent pas être dimentionner à partir d'une variable.

Code : Tout sélectionner

Grandeur.l = 125

Dim MonTableau.s(Grandeur) ; ça marche très bien

Structure MaStruct

    PosX.w
    PosY.w
    NbSprite.l
    SpriteID.l[Grandeur] ; Ça marche pas du tout

EndStructure
Avec un nombre exemple 125 ou avec #Nombre_de_Sprite = 125, ça marche très bien.

A+
Guimauve

Re: structure et tableau

Publié : ven. 23/juin/2006 18:39
par comtois
Thyphoon a écrit :Est ce que ce code est bon ou bien si ça marche c'est un coup de chance ? quel est la différence enter les "()" et les "[]" ? (j'ai rien trouvé dans la notice a ce propos)
Dans la page Structures de la doc :)
Note : 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).

Publié : ven. 23/juin/2006 18:51
par Thyphoon
Merci beaucoup a vous deux. Désolé pourtant j'avais épluché la doc mais j'étais passé a côté :(