AllocateMemory()
Syntaxe
*Resultat = AllocateMemory(Taille [, Options])Description
Alloue une zone mémoire contiguë remplie de zéros (caractère #Null).
Arguments
Taille La taille en octets de la nouvelle zone mémoire. Options (optionnel) Peut être une des valeurs suivantes: #PB_Memory_NoClear: Ne pas remplir la zone de mémoire avec des zéros. Cela peut aider à l'avoir plus rapidement si la mémoire allouée est utilisée immédiatement.
Valeur de retour
Renvoie l'adresse de la mémoire allouée (pointeur), zéro sinon.
Remarques
La commande FreeMemory() peut être utilisée pour renvoyer la mémoire allouée au système.
La commande ReAllocateMemory() peut être utilisée pour changer la taille de la zone allouée.
Toutes les zones de mémoire allouées sont automatiquement libérées lorsque les programmes se terminent.
Note: Si le programme se bloque à cette commande, c'est généralement dû à une corruption de la mémoire plus tôt dans le programme, après écriture, dans une zone en dehors de la zone de mémoire allouée. La cause de ce genre d'erreur peut être trouvée en utilisant le purificateur
Exemple
*MemoireID = AllocateMemory(5000) If *MemoireID Debug "Adresse de début de la zone mémoire de 5000 octets :" Debug *MemoireID PokeS(*MemoireID, "Stocke cette chaîne dans la zone mémoire") FreeMemory(*MemoireID) ; sera également effectué automatiquement à la fin du programme Else Debug "Impossible d'allouer la mémoire demandée !" EndIf
Exemple
Texte.s = "Salut !!!" *mem = AllocateMemory(StringByteLength(Texte) + SizeOf(CHARACTER)) CopyMemory(@Texte, *mem, StringByteLength(Texte) + SizeOf(CHARACTER)) Debug MemorySize(*mem) Debug PeekS(*mem) FreeMemory(*mem)
Voir aussi
ReAllocateMemory(), FreeMemory(), MemorySize()
OS Supportés
Tous