Allocare, deallocare, reallocare == malloc()/calloc(,), free(), realloc(,) ![]()
Semplicissimo esempio con i vettori.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <stdio.h> #include <stdlib.h> int main() { int i; int *vet = calloc(10, sizeof (int)); if (vet == NULL) printf("ERRORE! Memoria non allocata!"); else { printf("Creato dinamicamente un vettore di 10 elementi " "con calloc()\n"); for(i=0;i<10;i++) vet[ i ] = i * 13; for(i=0;i<10;i++) printf("[%d]->", vet[ i ]); printf("[END]\n"); } int *tmp = realloc(vet, 20 * sizeof (int)); if (tmp != NULL){ printf("Spazio memoria modificato con realloc()\n" "Adesso il vettore ha 20 elementi\n"); for(i=0;i<20;i++) tmp[ i ] = i + 1; for(i=0;i<20;i++) printf("[%d]->", tmp[ i ]); printf("[END]\n"); printf("Memoria deallocata con free()\n"); free(tmp); tmp = NULL; } else printf("ERRORE! Memoria non allocata\n"); return EXIT_SUCCESS; } |















