#include #include #include extern void print_stats(int); #define NUM_OF_GBYTES 8 int main(void) { char *p[NUM_OF_GBYTES]; int i; for (i = 0; i < NUM_OF_GBYTES; i++) { printf("allocating 1GB\n"); print_stats(0); p[i] = malloc(1024 * 1024 * 1024); print_stats(1); printf(" malloc returned: %p\n", p[i]); } printf("\n"); for (i = 0; i < NUM_OF_GBYTES; i++) { if (p[i]) { printf("memsetting 1GB: %p\n", p[i]); print_stats(0); memset(p[i], 1, 1024 * 1024 * 1024); print_stats(1); } } printf("\n"); for (i = 0; i < NUM_OF_GBYTES; i++) { if (p[i]) { printf("free 1GB: %p\n", p[i]); print_stats(0); free(p[i]); print_stats(1); } } return 0; }