...
Est-ce qu'un tableau est concerné par ça ? ou seulement AllocateMemory() ? Aucune idée !FreeMemory(*MemoryID)
Description
Libère une zone mémoire précédemment allouée par la fonction AllocateMemory() ou ReAllocateMemory(). Si la valeur de *MemoryID est -1, alors toutes les zones mémoire actuellement allouées seront libérées.
Je dirais seulement AllocateMemory(), mais bon , attendons le retour de vacances de Fred pour en savoir plus

ma doc anglaise dit :

donc en gros toto(0) libère toute la mémoire allouée par le tableauArrays are always globally accessable in PureBasic. This means that they can always be accessed from inside procedures without needing to use the Global or Shared commands.
If you want to delete the content of an array and release its used memory during program flow, call Dim with array name and 0 elements.

tu peut la metre en place ta commission d'enquete, car ça ne marche pas

Code : Tout sélectionner
Dim tab(10)
tab(0) = 1002
Debug tab(0)
Dim tab(0)
Debug tab(0)
Au secours !!!!
Ma doc ne dit rien à ce sujet et lors de mon dernier post j'avais testé ça :
Et no problémo ! Ca affiche '10' !
Que fais la police des 'aides' ?
Yatil un lien pour recupérer les fichiers aide Fr et Anglais les plus mieux à jour du monde ?
Ma doc ne dit rien à ce sujet et lors de mon dernier post j'avais testé ça :
Code : Tout sélectionner
Dim a(0)
a(0)=10
Debug a(0)
Que fais la police des 'aides' ?
Yatil un lien pour recupérer les fichiers aide Fr et Anglais les plus mieux à jour du monde ?
la doc anglaise dit ca aussi :
un tableau se dimensionne avec n-1 éléments, donc 0 élément = 1 élément.
ca parrait logique, c'est le cas dans des milliers d'autres situations en informatique
donc oui c normalWhen you define a new array, please note that it will have one more element than you used as parameter, because the numbering of the elements in PureBasic (like in other BASIC's) starts at element 0. For example when you define Dim(10) the array will have 11 elements, elements 0 to 10. This behaviour is different for static arrays in structures.
un tableau se dimensionne avec n-1 éléments, donc 0 élément = 1 élément.
ca parrait logique, c'est le cas dans des milliers d'autres situations en informatique
Dernière modification par Flype le jeu. 13/mai/2004 21:48, modifié 1 fois.
la mémoire est bien libérée à l'exception du premier element
histoire d'avoir encore accès au tableau
histoire d'avoir encore accès au tableau
Code : Tout sélectionner
Dim a(1)
a(0)=100
a(1)=1000
Dim a(0)
Debug a(0) ; la ok
Debug a(1) ; là çà plante si debugger off comme dit ds la doc
; normal car le tableau a bien été redimensionné
cederavic a écrit :tu peut la metre en place ta commission d'enquete, car ça ne marche pas![]()

Flype , le tableau est redimensionné mais la mémoire n'est pas vidée ?
Code : Tout sélectionner
Dim a(1)
a(0)=100
a(1)=1000
Dim a(0)
Debug a(0) ; la ok
Debug PeekL(@a(0)+4) ; affiche toujours la valeur a(1)
Debug a(1) ; là çà plante si debugger off comme dit ds la doc
; normal car le tableau a bien été redimensionné
pour liberer completement le tableau, il suffit de faire :
Code : Tout sélectionner
Dim toto(100)
Procedure DimFree()
Dim toto(0)
toto(0) = #Null
EndProcedure
toto(0) = 111
toto(1) = 222
toto(2) = 333
DimFree()
Debug toto(0)