Laboratorio di Programmazione. AA
2007/08.
Esercitazione n. 8
Scopo di questa esercitazione è di familiarizzarsi con i
puntatori e array.
Al solito, si suggerisce di creare una directory apposita per i
files relativi a questa esercitazione.
I prototipi delle function di libreria per
operare sulle strighe risiedono nel file di header string.h.Per
utilizzare malloc invece è necessario il file di
header stdlib.h.
-
Scrivere un programma che dichiari 3 variabili intere, tre float, tre double e tre puntatori a float. Usare l' operatore indirizzo per decidere se sono state riservate locazioni di memoria contigue ed eventualmente l' ordine con cui il compilatore ha riservato memoria.
-
Usare malloc e poi calloc per scoprire empiricamente quanta memoria può essere allocata al massimo sul sistema che state utilizzando.
-
Cosa verrà visualizzato dal seguente frammento di programma ?
int a[3]={1,2,3};
modifica(a);
printf("%d %d %d \n",a[0],a[1],a[2]);
....
void modifica (int a[3])
{
int i;
for(i=0; i<3 ; i++)
a[i]=20*a[i];
}
-
Scrivere un programma che permetta di verificare la differenza (se c'è) tra *p++, (*p)++ e *(p++), nell' ipotesi che
p sia un puntatore a int. (N.B. dopo ogni scrittura delle precedenti 3 espressioni, va ripristinato il valore iniziale di p).