::Il-mio.sito-web-dedicato-al.coding   

... un quaderno delgi appunti! di Giuseppe VACCA

Linguaggio di programmazione C


Puntatori a Void

 

Significato e passaggi

Le possibilità di uso dei puntatori, intesi come strumento peculiare del linguaggio C, sono arricchite dal tipo Void a cui essi possono puntare.

Come il significato della parola stessa suggerisce, il tipo Void è un tipo vuoto nel senso che un puntatore a Void può puntare ad un indirizzo di memoria che può contenere un qualsiasi tipo di variabile. Questo accade in "deroga" a quella regola, vista negli articoli precedenti, secondo la quale quando si crea un variabile puntatore è necessario indicare anche il tipo di dato contenuto nell'indirizzo al quale la variabile puntatore fa riferimento.

C'è un prezzo da pagare! La regola di indicare il tipo di variabile nella definizione di puntatore risponde all'esigenza del compilatore di conoscere come gestire i dati allorchè vengano dereferenziati. Questo implica che un puntatore Void non può essere dereferenziato. L'utilizzo del dato conenuto nell'indirizzo di memoria puntato dalla puntatore Void può avvenire mediante casting di quest'ultimo.

E' possibile fare in modo che il puntatore a Void punti una volta ad una locazione di memoria che contiene un intero, la volta successiva, lo stesso puntatore, possa puntare ad un indirizzo di meomoria contentenete un float. Di volta in volta sarà possibile ripescare il dato contenuto nella cella di memoria creando una nuova variabile dello stesso tipo di quella che è contenuta nella locazione di memoria a cui si vuole accedere, e assegnare a questa, mediante casting, il valore della memoria puntata dal puntatore a Void.