#include #include 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; }