Differenze tra le versioni di "VarPtr"
Riga 20: | Riga 20: | ||
Utilizzare questa funzione quando l'argomento di una [[Extern:_richiamare_funzioni_esterne_a_Gambas|funzione esterna]] è un "Puntatore" a una variabile numerica. Ad esempio, int * o void **. | Utilizzare questa funzione quando l'argomento di una [[Extern:_richiamare_funzioni_esterne_a_Gambas|funzione esterna]] è un "Puntatore" a una variabile numerica. Ad esempio, int * o void **. | ||
<BR>Non si deve usare, invece, per gestire char **, perché il contenuto di una variabile stringa Gambas è di sola lettura. | <BR>Non si deve usare, invece, per gestire char **, perché il contenuto di una variabile stringa Gambas è di sola lettura. | ||
+ | |||
+ | |||
+ | |||
+ | =Riferimenti= | ||
+ | * https://gambaswiki.org/wiki/lang/varptr?l=it |
Versione delle 06:49, 4 set 2022
La funzione VarPtr()
Puntatore = VarPtr ( Variabile )
restituisce un "Puntatore" che punta al contenuto della variabile in memoria.
La variabile deve essere una variabile locale o una variabile globale della classe corrente.
Il tipo di dati della variabile deve essere un numero, una data o un puntatore.
Public Sub Main() Dim i As Integer Dim p As Pointer i = 123456 p = VarPtr(i) End
Tale variabile può essere una stringa solo per variabili "globali". In tal caso, il "Puntatore" restituito non è l'indirizzo del contenuto della stringa, ma è l'indirizzo di un altro "Puntatore" che punta al contenuto della stringa.
Il parametro Variabile può essere una anche di tipo "Variant". Ma, attenzione, il "Puntatore" restituito è garantito per essere valido fino a quando non cambia il tipo di dati della variante.
Utilizzare questa funzione quando l'argomento di una funzione esterna è un "Puntatore" a una variabile numerica. Ad esempio, int * o void **.
Non si deve usare, invece, per gestire char **, perché il contenuto di una variabile stringa Gambas è di sola lettura.