01: // allocazione dinamica memoria con malloc() e free(), controllo errore allocazione
02: #include<stdio.h>
03: #include<stdlib.h>
04:
05: int main(int argc, char **argv){
06:
07: int sum=0;
08: unsigned long n;
09:
10: printf("Quanti interi vuoi sommare? ");
11: scanf("%lu", &n);
12:
13: int *a = malloc(sizeof(int)*n); // con VLA potevo usare int a[n];
14: if(!a) // equivalente a a==NULL
15: {
16: printf("ERRORE: non e' stato possibile allocare la memoria richiesta per %lu interi (%lu byte)\n", n, n*sizeof(int));
17: exit(1);
18: }
19:
20: for(int i=0; i<n; ++i)
21: {
22: printf("Inserisci numero intero: ");
23: scanf("%d", &a[i]);
24: sum += a[i];
25: }
26:
27: printf("Hai inserito i seguenti numeri:\n");
28: for(int i=0; i<n; ++i)
29: {
30: printf("%3d: %6d\n", i+1, a[i]);
31: }
32:
33: free(a); // con VLA NON possibile
34:
35: printf("Il totale vale: %d\n", sum);
36:
37:
38:
39:
40: return 0;
41: }
42:
43:
Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it