Ottenere il puntatore di una variabile di tipo Struttura

Da Gambas-it.org - Wikipedia.
Versione del 10 ott 2013 alle 09:44 di Vuott (Discussione | contributi) (Creata pagina con 'In taluni casi particolari può essere necessario passare ad una funzione, oppure ad una variabile di tipo ''Puntatore'', il ''Puntatore'' di una variabile di tipo ''Struttura...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

In taluni casi particolari può essere necessario passare ad una funzione, oppure ad una variabile di tipo Puntatore, il Puntatore di una variabile di tipo Struttura (ossia una variabile di tipo Puntatore che punta all'indirizzo di memoria di una variabile di tipo Struttura).

Per ottenere il Puntatore di una variabile di tipo Struttura non è possibile operare con la funzione VarPtr, poiché essa, come ben precisato nella guida ufficiale di Gambas, "il tipo di dati della variabile, deve essere un intero, un puntatore o una stringa". Quindi le variabili di tipo Struttura sono escluse !

Essendo la variabile comunque un oggetto, la soluzione può essere trovata nel metodo .Address() della Classe Object. Infatti, detto metodo "ritorna l'indirizzo di memoria di un oggetto", ritornando quindi una variabile di tipo Puntatore.

La sintassi generale è la seguente:

Object.Address( Object As Object ) As Pointer


e pertanto, nel caso in questione, posto var_struct come variabile di tipo Struttura, si otterrà un Puntatore a detta variabile nel modo seguente:

Dim p As Pointer
Dim var_struct As New Struttura

  p = Object.Address(var_struct)