Differenze tra le versioni di "VarPtr"
(Creata pagina con "La funzione '''VarPtr()''' Puntatore = VarPtr ( ''Variabile'' ) restituisce un "Puntatore" che punta al contenuto della variabile in memoria. <BR>La variabile deve essere una...") |
|||
Riga 4: | Riga 4: | ||
<BR>La variabile deve essere una variabile locale o una variabile globale della classe corrente. | <BR>La variabile deve essere una variabile locale o una variabile globale della classe corrente. | ||
<BR>Il tipo di dati della variabile deve essere un numero, una data o un puntatore. | <BR>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 "[[Le_Variabili#Dichiarazione_delle_variabili_Globali|globali]]". In tal caso, il "Puntatore" restituito <SPAN Style="text-decoration:underline">non</span> è l'indirizzo del contenuto della stringa, ma è l'indirizzo di un <SPAN Style="text-decoration:underline">altro</span> "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. | 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. |
Versione delle 15:08, 28 ott 2021
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.