Unknown さんのコメント... mallocしたときに、mallocされたデータに関する情報が配列データの直前にあるって聞いたような気がして試してみました。 -------- ここから #include <stdio.h> #include <stdlib.h> int main() { for (int i = 0; i < 16; ++i) { size_t* p = (size_t*)malloc(i * sizeof(size_t)); printf("%u\n", (unsigned int)p[-1]); free(p); } return 0; } -------- ここまで 結果は、うちのマシンでは -------- ここから 33 33 33 33 49 49 65 65 81 81 97 97 113 113 129 129 -------- ここまで おそらく、