20/01/12 14:22
zaire90
Salve volevo liberare la memoria che avevo occupato precedentemente in modo dinamico.
pensavo che il modo corretto di fare questo fosse di fare free(puntatore), dove puntatore è il puntatore al vettore allocato dinamicamente.
questo codice è un esempio esplicativo della mia lacuna probabilmente. dopo aver liberato il puntatore q, provo a mettere il valore 3 in q[1]. Al momento dell'esecuzione del programma mi aspettavo di trovare "segmentation fault". e invece no! Mi viene addirittura ristampato il valore 3!
Sapeta aiutarmi?
grazie
pensavo che il modo corretto di fare questo fosse di fare free(puntatore), dove puntatore è il puntatore al vettore allocato dinamicamente.
int *q; q=(int*)malloc(5*sizeof(int)); q[1]=3; printf("val = %d\n", q[1]); free(q); q[1]=3; printf("val = %d\n", q[1]);
questo codice è un esempio esplicativo della mia lacuna probabilmente. dopo aver liberato il puntatore q, provo a mettere il valore 3 in q[1]. Al momento dell'esecuzione del programma mi aspettavo di trovare "segmentation fault". e invece no! Mi viene addirittura ristampato il valore 3!
Sapeta aiutarmi?
grazie
aaa