<cstdlib> #include <omp.h> const int N = 128; int main(int argc, char **argv) { char *buf[N]; size_t size = 128; #pragma omp parallel for for (int i = 0; i < N; i++) { buf[i] = (char*)malloc(size); } for (int i = 0; i < N; i++) { for (int j = 0; j < size; j++) { buf[i][j] = 0; } } for (int i = 0; i < N; i++) { free(buf[i]); } printf("digraph test_%d¥n {¥n", size); for (int i = 0; i < N; i++) { size_t *p = (size_t*)(buf[i]); size_t prev_size = *(p - 2); if (prev_size != 0)continue; size_t *ct = p - 2; size_t fd = *p; printf("¥"%lx¥"->¥"%lx¥"¥n", ct, fd); } printf(")¥n"); } https://gist.github.com/kaityo256/32bc425b630642f67e649854104f977e 128バイトを128個malloc&free malloc のチャンクリスト形状 (1/5) チャンクリスト可視化コードを書いた 注: デフラグされなかったチャンクを表示しているわけではない 隣接するチャンクがまとめられた時、代表チャンクのみ表示