Ritorna alla pagina del corso.

Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.

01: /*
02: 6. si allochino dinamicamente due array di 100 elementi mediante
03: calloc() e si stampino gli indirizzi di dove si trovano in memoria.
04: Utilizzando realloc() si estendano gli array in modo da poter
05: contenere 200 elementi e si stampino nuovamente gli indirizzi di
06: dove si trovano. Sempre usando realloc() si "accorcino" gli array di
07: modo da poter contenere 50 elementi e si stampi nuovamente il loro
08: indirizzo in memoria. Cosa notate?
09: */
10: #include<stdio.h>
11: #include<stdlib.h>
12: 
13: int main(int argc, char **argv){
14: 
15:   // nulla  viene detto sul tipo di dato, scelgo arpitrariamente il char
16:   char *a1, *a2;
17: 
18:   a1 = calloc(100, sizeof(char));
19:   a2 = calloc(100, sizeof(char));
20: 
21:   printf("Appena allocati i due arry si trovano in           %p e %p\n", a1, a2);
22: 
23:   a1 = realloc(a1, 200*sizeof(char));
24:   a2 = realloc(a2, 200*sizeof(char));
25: 
26:   printf("Dopo la realloc() i due arry si trovano in         %p e %p\n", a1, a2);
27: 
28:   a1 = realloc(a1, 50*sizeof(char));
29:   a2 = realloc(a2, 50*sizeof(char));
30: 
31:   printf("Dopo l'altra realloc() i due arry si trovano in    %p e %p\n", a1, a2);
32: 
33:   free(a1);
34:   free(a2);
35: 
36:   return 0;
37: }
38: 
39: