Array dans une structure

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Array dans une structure

Message par bombseb »

Resalut les copains

J'aimerais stocker un tableau à deux dimensions dans une structure. Petit problème, je ne connait pas à l'avance le nombre d'éléments dans ce tableau...

Je pense qu'il doit y avoir moyen de le faire avec un pointeur mais je ne sais pas trop comment...

Code : Tout sélectionner

Structure tileData
  tile.u
EndStructure

Structure layer
  name$
  width.u
  height.u
  *datas.tileData  ; <- Pointeur
EndStructure

[.....]
l.layer
Dim tmpTab (l\width - 1, l\height - 1)
ConvertDatas (tmp$, tmpTab ()) ; <- Fonction qui me renvoit un tableau
l\datas = @tmpTab ; Je stocke l'adresse du tableau dans ma structure
Comment accéder aux éléments du tableau de ma structure ensuite ??
Merci d'avance
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Array dans une structure

Message par poshu »

Code : Tout sélectionner

Structure tileData
  tile.u
EndStructure

Structure layer
  name$
  width.u
  height.u
  Array c.i(3,3)
EndStructure

Global testouille.layer

Dim testouille\c(34,34)
testouille\c(23,31) = 21
Debug testouille\c(23,31)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Array dans une structure

Message par Kwai chang caine »

Merci POSHU 8)
Juste une question, tu a mis 3,3 au hasard , parce que j'ai essayé avec 0,0 ça marche aussi

Code : Tout sélectionner

Structure layer
  Array c.i(0,0)
EndStructure

Global testouille.layer

Dim testouille\c(34,34)
testouille\c(23,31) = 21
Debug testouille\c(23,31)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Array dans une structure

Message par poshu »

J'ai mis 3,3... Parce que je me souvenais pas comment on déclarait un tableau dans une structure, j'ai été voir dans l'aide et j'ai copié collé l'exemple :p
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Array dans une structure

Message par bombseb »

Olala bah merci pour l'info....

Je ne savait pas qu'on pouvait définir un tableau, puis ensuite utiliser Dim pour le redimensionner
Je croyais que pour redimensionner un tableau il fallait utiliser Redim. Sauf que sur les tableau à plusieurs dimensions, Redim ne redimensionne que la dernière dimension...
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Array dans une structure

Message par poshu »

bombseb a écrit :Olala bah merci pour l'info....

Je ne savait pas qu'on pouvait définir un tableau, puis ensuite utiliser Dim pour le redimensionner
Je croyais que pour redimensionner un tableau il fallait utiliser Redim. Sauf que sur les tableau à plusieurs dimensions, Redim ne redimensionne que la dernière dimension...
En réutilisant dim, tu recrées un tableau de toutes pièces, toutes les données contenues dans le tableau original seront perdues.

Faudrait aussi vérifier que cette opération nettoie bien l'objet du premier tableau, sinon tu vas te retrouver avec une fuite... (<- comprendre j'ai la flemme de le faire, bonne chance :mrgreen: )
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Array dans une structure

Message par bombseb »

Mouais je ne sais pas trop comment faire pour vérifier ca....

Bon en tout cas ca marche et c'est nickel ! Merci pour l'aide !
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Array dans une structure

Message par bombseb »

En y réfléchissant, si tu définit un tableau avec zéro éléments dedans, logiquement ça ne devrait pas prendre de place en mémoire, donc il ne devrait pas y avoir de fuite en le redimensionnant non ?
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Array dans une structure

Message par poshu »

bombseb a écrit :En y réfléchissant, si tu définit un tableau avec zéro éléments dedans, logiquement ça ne devrait pas prendre de place en mémoire, donc il ne devrait pas y avoir de fuite en le redimensionnant non ?
L'objet est quand même créé. Je bosse sur SB là, quand j'en aurai fini, je vais essayé de me motiver pour tester.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Array dans une structure

Message par Kwai chang caine »

@POSHU
Merci pour ta réponse, je voulais être sûr que y'avait pas une raison spéciale de mettre 3,3 :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Array dans une structure

Message par bombseb »

poshu a écrit :
bombseb a écrit :En y réfléchissant, si tu définit un tableau avec zéro éléments dedans, logiquement ça ne devrait pas prendre de place en mémoire, donc il ne devrait pas y avoir de fuite en le redimensionnant non ?
L'objet est quand même créé. Je bosse sur SB là, quand j'en aurai fini, je vais essayé de me motiver pour tester.

Cool merci, tu me dira comment tu fait pour voir s'il y a une fuite mémoire au passage....

C'est quoi SB ? Super Bario ? Star braft ? :D
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Array dans une structure

Message par bombseb »

Tiens j'ai vu ca dans l'aide :
Si Dim est utilisé sur un tableau existant, il réinitialise son contenu à zéro.
Je pense que ca ne fait pas de fuite du coup...
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Array dans une structure

Message par Ar-S »

SpiderBasic
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Array dans une structure

Message par bombseb »

hum ok...
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Array dans une structure

Message par boby »

Olala bah merci pour l'info....

Je ne savait pas qu'on pouvait définir un tableau, puis ensuite utiliser Dim pour le redimensionner
Je croyais que pour redimensionner un tableau il fallait utiliser Redim. Sauf que sur les tableau à plusieurs dimensions, Redim ne redimensionne que la dernière dimension...
Si tu utilise la doc française et que c'est pas marqué dans la doc, utilise l'anglaise, là c'est marqué :
If Dim is used on an existing array, it will reset its contents to zero.
Répondre