tableau ...

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

tableau ...

Message par jerexgrz »

pour effacer un tableau, il suffit d'utiliser :

dim tab (0)

Pour une relecture de code + facile, pourquoi ne pas utiliser plutot :

erase tab()
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Message par graph100 »

dimentioner un tableau a 0 ne le supprime pas : il crée un tableau avec
1 element d'index 0
d'ailleur les tableaux comme les listegadgets et co sont indexer à partir de zéro
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

graph100 a écrit :dimentioner un tableau a 0 ne le supprime pas : il crée un tableau avec
1 element d'index 0
d'ailleur les tableaux comme les listegadgets et co sont indexer à partir de zéro
la doc dit
Pour effacer le contenu complet d'un tableau et libérer la mémoire qu'il occupe, appelez Dim avec 0 élément
:D

donc :

Code : Tout sélectionner

dim tab (0) 
toutefois a priori il reste un element et la memoire n'est pas liberé :?
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Message par graph100 »

oui je lu la doc avant de répondre
mais j'ai fait le test

Code : Tout sélectionner

Dim montableau(2)

For a = 0 To 2
  montableau(a) = a + 10
  Debug montableau(a)
Next

Debug "--- on dimentione à 0"

Dim montableau(0)

Debug montableau(0)

Debug "--"

montableau(0) = 5

Debug montableau(0)
mais ca me parait logique car il y a toujour un element de plus que la dimention !!
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Ouais, je savais bien que j'avais oublier un truc ! :lol:

Code : Tout sélectionner

dim tab.l (10)

erase tab (0) => Pour effacer tout le tableau 
erase tab(1) => Pour effacer juste la 1ere case du tableau
erase tab(3) => pour effacer seulement la 3eme case ...

Mais attention aussi:

Code : Tout sélectionner

structure point
x.l
y.l
color.s
a.l [50]
endstructure

dim pt.point (10)

erase pt (10) => efface toutes les donnees (x,y color , a ....) qui se trouve
                         à l'interieur de l'indexation 10 du tableau pt (quelque soit 
                         le type long, integer, string, ...)
Anonyme

Message par Anonyme »

FreeMemory(@Tab()) à l'air de fonctionné , du moins sous le pingouin. :P
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bah sous bilou quand je fais "FreeMemory(@montableau())"
J'ai une jolie barre rouge :D
Répondre