Differenze tra le versioni di "Ottenere il puntatore di una variabile di tipo Struttura"

Da Gambas-it.org - Wikipedia.
(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...')
 
Riga 14: Riga 14:
 
   
 
   
 
   p = Object.Address(var_struct)
 
   p = Object.Address(var_struct)
 +
 +
  ......

Versione delle 09:44, 10 ott 2013

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)

  ......