Dove il simbolo -> indica che il puntatore punta al
campo indicato della struct puntata.
Per gli array e le matrici la dichiarazione � sempre la stessa, ma la definizione
( o assegnazione degli indirizzi) � diversa,cos� come lo scorrimento dell'array,
come nell'esempio:
int array[20];
float matrice[4][4];
int *punt_array;
float *punt_matrice;
punt_array = array;
punt_matrice = matrice;
for(int i=0;i<20;i++)
{
cout<< punt_array[i]; //oppure: cout<< *(punt_array+i);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
cout<< *(punt_matrice+i+j);
}
}
I puntatori sono utilizzati anche per gestire l'allocazione dinamica, che crea
una variabile temporanea nell'HEAP (parte della RAM) che deve essere per� deallocata
al termine del programma. Ecco un esempio di allocazione dinamica:
int *p;
p= new int; //si crea lo spazio per un nuovo intero
//qui p viene trattato come un normale puntatore ad un intero
//deallocazione di p (p non punta pi� allo spazio nell'heap)
delete p;