Cambiare la dimensione di un'area di memoria mediante Realloc()

Da Gambas-it.org - Wikipedia.

La funzione "Realloc()" consente di assegnare al Puntatore una nuova e differente dimensione di un'area di memoria precedentemente allocata con la funzione "Alloc()".
La riallocazione della memoria mediante la funzione "Realloc()" comporterà la deallocazione automatica della precedente area di memoria riservata. Pertanto sarà sufficiente al termine del programma liberare la sola memoria riservata con la funzione "Realloc()".


Mostriamo un semplicissimo esempio:

Public Sub Main()
 
 Dim p1, p2 As Pointer
 
' Allochiamo con la funzione "Alloc()" un'area di memoria pari a 4 byte:
  p1 = Alloc(SizeOf(gb.Byte), 4)
  
' Riallochiamo per una dimensione di 8 byte l'area di memoria precedentemente allocata di 4 byte:
  p2 = Realloc(p1, SizeOf(gb.Byte), 8)
  
' Liberiamo la memoria complessivamente allocata (8 byte) e puntata dalla variabile di tipo 'Puntatore' "p2":
  Free(p2)
  
End