malloc_ptr.c
text/plain
Filename: malloc_ptr.c
Type: text/plain
Part: 0
#include <stdio.h>
#include <stdlib.h>
typedef unsigned long long uint64;
int main(void)
{
size_t count[8] = {0};
size_t n;
for (n = 0; n < 1024*1024; n++)
{
void *ptr = (void *) malloc(n);
uint64 header;
if (!ptr)
{
fprintf(stderr, "OOM\n");
return -1;
}
header = *((uint64 *) ((char *) ptr - sizeof(uint64)));
count[header & 7]++;
free(ptr);
}
for (n = 0; n <= 7; n++)
printf("%zd: %zd\n", n, count[n]);
return 0;
}