動的に配列を確保した際のメモリ量が知りたいんですが
どうやって調べたらいいんでしょうか?

int *array;
array = (int *)malloc(sizeof(int) * 1000000);

とした場合、int型4byte×1000000=4Mbyteになると思ったのですが
cygwin上でtopコマンドを使って調べたところ6Mbyte程消費していました。

環境によってこの位変わるものなのでしょうか?
よろしくお願いします。