I puntatori

17 marzo 2006

I puntatori rappresentano uno dei punti di forza più rappresentativi del C++. Al tempo stesso, però, spesso sono causa di confusione per i neofiti a causa del loro meccanismo leggermente complesso.

Per poter capire a cosa serve un puntatore, è necessario sapere che la memoria del calcolatore in cui possono risiedere le variabili è suddivisa in due parti:

  • lo Stack
  • e l’Heap

Nello Stack vengono immagazzinate tutte le variabili, come quelle dei programmi che abbiamo visto finora. Ad esempio quando si definisce:

int i = 0;

Il computer riserverà due byte di memoria dello Stack per la variabile i. Dichiarazioni di questo tipo sono abbastanza “statiche”, in quanto non permettono ad esempio di modificare il numero di byte assegnato ad una variabile o di deallocare la memoria di una variabile, quindi di liberare lo spazio precedentemente assegnato.

Quest’ultima osservazione può rappresentare un problema quando si manipolano grosse quantità di informazioni, in quanto potrebbe succedere che lo Stack si riempia e quando si tenta di allocare altra memoria si verifichi il cosiddetto Stack overflow.

Per permettere al programmatore di utilizzare la memoria in maniera “dinamica” è possibile allora utilizzare la memoria Heap, detta anche memoria dinamica. Il termine dinamica sta proprio ad indicare che è data la possibilità al programmatore di allocare e deallocare la memoria a suo piacimento.

Questa, tuttavia, è un’operazione molto delicata che, se compiuta in modo errato può portare ad errori spesso difficili da trovare che si verificano in fase di esecuzione. La manipolazione dell’Heap avviene proprio tramite i puntatori.

Tutte le lezioni

1 ... 36 37 38 ... 51

Se vuoi aggiornamenti su I puntatori inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su I puntatori

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy