Conoscere con i Puntatori i valori contenuti in un vettore
Da Gambas-it.org - Wikipedia.
Versione del 2 giu 2015 alle 09:40 di Vuott (Discussione | contributi) (Creata pagina con 'Un vettore è sostanzialmente un Oggetto, nella cui area di memoria sono contenuti dati del medesimo tipo, ossia che occupano la medesima quantità di memoria (tutti ''Byte'',...')
Un vettore è sostanzialmente un Oggetto, nella cui area di memoria sono contenuti dati del medesimo tipo, ossia che occupano la medesima quantità di memoria (tutti Byte, o tutti Short, o tutti Integer, e così via).
I vettori mettono a disposizione, fra l'altro, la proprietà .Data, che restituisce un Puntatore (ossia l'indirizzo di memoria) ai dati contenuti dal vettore medesimo.
E' possibile spostandoci lungo l'area di memoria puntata da tale Puntatore secondo la quantità di memeoria occupata dal tipo di vettore (Byte[], Short[], etc), leggere i valori contenuti dalla variabile vettoriale.
Mostriamo un semplice esempio con un vettore di tipo Integer():
Public Sub Main() Dim ii As Integer[] = [2, 22, 222, 2222, 22222, 222222, 2222222] Dim p As Pointer Dim b As Byte p = ii.Data For b = 0 To ii.Max ' Dereferenziamo il puntatore per ottenere il valore contenuto dalla locazione di memoria puntata: Print b;; Int@(p) ' Trattandosi di un vettore di tipo "Intero", spostiamo il puntatore interno all'area di memoria ' pari al numero di byte di memoria occupata dal tipo "Intero": p = p + SizeOf(gb.Integer) Next End