| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <malloc.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define N 10000
- static void *arr[N];
- static int
- do_test (void)
- {
- for (int i = 0; i < N; ++i)
- {
- size_t size = random () % 16384;
- if ((arr[i] = malloc (size)) == NULL)
- {
- nomem:
- puts ("not enough memory");
- return 0;
- }
- memset (arr[i], size, size);
- }
- void *p = malloc (256);
- if (p == NULL)
- goto nomem;
- memset (p, 1, 256);
- puts ("==================================================================");
- for (int i = 0; i < N; ++i)
- if (i % 13 != 0)
- free (arr[i]);
- puts ("==================================================================");
- malloc_trim (0);
- puts ("==================================================================");
- p = malloc (30000);
- if (p == NULL)
- goto nomem;
- memset (p, 2, 30000);
- malloc_trim (0);
- return 0;
- }
- #define TEST_FUNCTION do_test ()
- #include "../test-skeleton.c"
|