Sei sulla pagina 1di 1

I puntatori

17 marzo 2006

Marco Altese

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 lHeap Nello Stack vengono immagazzinate tutte le variabili, come quelle dei programmi che abbiamo visto finora. Ad esempio quando si definisce:
i n ti=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. Questultima 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, unoperazione 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 dellHeap avviene proprio tramite i puntatori.

Lezione:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

Potrebbero piacerti anche