Differenze tra le versioni di "Ottenere il puntatore a una variabile vettoriale"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per ottenere una variabile di tipo "Puntatore" che punti a una variabile vettoriale (array) <SUP>[[[#Note|nota 1]]]</sup>, bisognerà considerare che: * con il Metod...")
 
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 8: Riga 8:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim vettore As New Byte[4]
 
   Dim vettore As New Byte[4]
Riga 19: Riga 19:
 
   Print Object.Address(vettore_annidato)
 
   Print Object.Address(vettore_annidato)
 
   
 
   
  '''End'''
+
  End
 
Come si nota, l'indirizzo dell'Oggetto vettore è ovviamente "diverso" da quello della sua area di memoria, contenente effettivamente i valori vettoriali, puntata dalla Proprietà ".Data".
 
Come si nota, l'indirizzo dell'Oggetto vettore è ovviamente "diverso" da quello della sua area di memoria, contenente effettivamente i valori vettoriali, puntata dalla Proprietà ".Data".
  
Riga 25: Riga 25:
  
 
=Note=
 
=Note=
* Vedere anche le seguenti pagine:
+
[1] Vedere anche le seguenti pagine:
- [[Assegnare_un_vettore_ad_un_Puntatore|Assegnare un vettore ad un Puntatore]]
+
* [[Assegnare un vettore ad una variabile di tipo Puntatore]]
<BR> - [[Convertire_un_vettore_di_tipo_Byte_in_un_Puntatore|Convertire un vettore di tipo Byte in un Puntatore]]
+
* [[Convertire un vettore di tipo Byte in un Puntatore]]

Versione attuale delle 08:06, 27 giu 2023

Per ottenere una variabile di tipo "Puntatore" che punti a una variabile vettoriale (array) [nota 1], bisognerà considerare che:

  • con il Metodo "Object.Address(vettore)" si ottiene l'indirizzo di memoria dell'Oggetto vettore;
  • con la Proprietà ".Data" dell'array si ottiene l'indirizzo della specifica area di memoria dell'Oggetto vettore ove sono memorizzati i valori contenuti dal vettore medesimo.

Se la variabile del tipo del vettore è "annidata", allora potrà usarsi anche la funzione "VarPtr()" al posto della Proprietà "vettore.Data".

Esempio:

Private vettore_annidato[4] As Byte


Public Sub Main()

 Dim vettore As New Byte[4]
 
 Print vettore.Data
 Print Object.Address(vettore)
 Print
 Print vettore_annidato.Data
 Print VarPtr(vettore_annidato)
 Print Object.Address(vettore_annidato)

End

Come si nota, l'indirizzo dell'Oggetto vettore è ovviamente "diverso" da quello della sua area di memoria, contenente effettivamente i valori vettoriali, puntata dalla Proprietà ".Data".


Note

[1] Vedere anche le seguenti pagine: