ReAllocateMemory()

Syntaxe

*NouvelleMemoireID = ReAllocateMemory(*MemoireID, Taille)
Description
Alloue (si le paramètre *MemoireID est 0) ou re-alloue une zone continue de mémoire de la Taille spécifiée (en octets). Si la zone de mémoire était déjà allouée, alors son ancien contenu est conservé. Si la quantité de mémoire demandée est disponible, *NouvelleMemoireID contiendra l'adresse de début de la zone mémoire, ou 0 si la zone n'a pu être allouée (dans ce cas, l'ancienne zone mémoire est toujours valide).

Note: Toutes les zones mémoire créées sont automatiquement libérées à la fin du programme.

Exemple:

  *MemoireID = AllocateMemory(1000)
  PokeS(*MemoireID, "Stocke cette chaîne")
  ; faire quelque chose en plus avec ça ici...
  ;
  *NouvelleMemoireID = ReAllocateMemory(*MemoireID, 2000) ; besoin de plus de mémoire
  If *NouvelleMemoireID
    ; maintenant travailler avec *NouvelleMemoireID avec une taille de 2000 octets
    Debug "L'ancien contenu est toujours là :"
    Debug PeekS(*NouvelleMemoireID)
    ;
    FreeMemory(*NouvelleMemoireID)
  Else
    ; le redimensionnement a échoué, continuons de travailler avec *MemoireID (de taille 1000 octets)
    ;
    FreeMemory(*MemoireID)
  EndIf

OS Supportés

Tous

<- PokeW() - Memory Index