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: