01: // Variable Length Array: problema durata automatica
02: #include<stdio.h>
03: #include<stdlib.h>
04: 
05: // nelle intenzioni, genero n lanci di un dado e restituisco il relativo valore
06: int *genera_array_lanci(int n)
07: {
08: 
09:   int v[n];
10: 
11:   for(int i=0; i<n; ++i)
12:     v[i] = rand()%6 + 1;
13: 
14:   printf("DEBUG: restituisco indirizzo %p\n", v);
15:   return v;
16: } // l'array v[] e' locale alla funzione. Viene quindi distrutto quando la funzione termina. Quindi l'indirizzo di memoria restituito non e' piu' utilizzabile
17: 
18: int main(int argc, char **argv){
19: 
20:   int n;
21: 
22:   printf("Quanti lanci di dado vuoi simulare? "); 
23:   scanf("%d", &n);
24: 
25:   int *lanci = genera_array_lanci(n);
26: 
27:   printf("DEBUG: la funzione ha restituito l'indirizzo %p\n", lanci);
28:   printf("Hai ottenuto i seguenti valori: ");
29:   for(int i=0; i<n; ++i)
30:     printf(" %d", lanci[i]);
31: 
32:   printf("\n");
33: 
34:   return 0;
35: }
36: 
37: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it