Differenze tra le versioni di "Free"

Da Gambas-it.org - Wikipedia.
Riga 9: Riga 9:
 
Per porre la variabile di tipo ''Puntatore'' a zero, ossia per ''annullarla'', per far sì che non punti più ad alcuna cella di memoria, le va assegnato esplicitamente il valore zero.
 
Per porre la variabile di tipo ''Puntatore'' a zero, ossia per ''annullarla'', per far sì che non punti più ad alcuna cella di memoria, le va assegnato esplicitamente il valore zero.
  
Volendo, quindi, effettuare anche l'annullamento del ''Puntatore'', si avrà mediante la funzione ''Free( )'' la deallocazione della porzione di memoria, precedentemente riservata, ed - a seguire - l'annullamento del ''Puntatore'' medesimo con l'assegnazione del valore zero.
+
Volendo, quindi, effettuare anche l'annullamento del ''Puntatore'', si avrà mediante la funzione ''Free( )'' la deallocazione della porzione di memoria, precedentemente riservata, ed - a seguire - l'annullamento del ''Puntatore'' medesimo con l'assegnazione del valore zero. <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
 
  Dim puntatore As Pointer
 
  Dim puntatore As Pointer
 
   
 
   

Versione delle 15:51, 3 apr 2017

La funzione Free() dealloca un'area di memoria precedentemente allocata mediante la funzione Alloc( ).

La sua sintassi è:

Free(p As Pointer)

La dimensione dello spazio di memoria, precedentemente allocata e referenziata dal Puntatore, viene liberata, resa disponibile ad altre parti del programma e per un altro uso. Finché essa non viene riutilizzata, il suo contenuto può rimanere quello precedente.

Va precisato che la funzione Free( ) libera l'area di memoria puntata dalla variabile di tipo Puntatore, ma non annulla il Puntatore medesimo. Ciò vuol dire che il Puntatore non assume il valore 0 (zero), ma viene lasciato al valore corrente, continuando così comunque a puntare alla prima cella dell'area di memoria precedentemente allocata, la quale, non essendo più però ormai riservata, non è più utile a contenere valori.

Per porre la variabile di tipo Puntatore a zero, ossia per annullarla, per far sì che non punti più ad alcuna cella di memoria, le va assegnato esplicitamente il valore zero.

Volendo, quindi, effettuare anche l'annullamento del Puntatore, si avrà mediante la funzione Free( ) la deallocazione della porzione di memoria, precedentemente riservata, ed - a seguire - l'annullamento del Puntatore medesimo con l'assegnazione del valore zero. [Nota 1]

Dim puntatore As Pointer

 puntatore = Alloc(SizeOf(gb.Byte), 16)

 ......

 Free(puntatore)
 puntatore = 0