mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-30 21:23:52 +08:00
57 lines
962 B
C
57 lines
962 B
C
|
#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"
|