Buongiorno a tutti,
Sicuramente qualcuno alla fine della lettura di questo post si domanderà del perchè perdo tanto tempo ad inseguire spiegazioni e concetti a prima vista inutili.
La risposta è semplice,'funziona così e basta' non fà al caso mio
Argomento, come da titolo PUNTATORI
dato il codice in oggetto :
struct a_Struct
{
byte a1;
byte a2;
byte a3;
};
byte buffer[10] = {0,1,2,3,4,5,6,7,8,9};
a_Struct * prtTo_a = (a_Struct *)&buffer[5];
Suppongo che prtTo_a utilizzi 2 byte , ed il tipo specificato (a_Struct * ) identifichi la struttura dei dati.
Quello che non riesco a capire esattamente è :
-
quanto spazio realmente viene allocato in memoria per l'operazione in oggetto? (io suppongo siano 10 byte per buffer[] + 2 byte per ptrTo_a totale 12byte, è corretto o va considerato altro?)
-
se ptrTo_a è formato da soli 2 byte (indirizzo del puntatore) chi è che si smazza per fare in modo che nel programma tramite quella dichiarazione risulti del tipo a_Struct ? (l'unica cosa sensata che ho pensato è che il tutto finisce una volta compilato ed è il compilatore stesso che si occupa di puntare esattamente ai singoli valori della struttura quando richiesti)
Grazie a tutti quanti vorranno partecipare!!!