【发布时间】:2014-02-20 01:38:14
【问题描述】:
如果 malloc 调用 VirtualAlloc() 函数分配内存(分配最小 4Kb),malloc 如何为 int 分配 4 个字节?
【问题讨论】:
-
您如何确定 malloc 为 int 分配了 2 个字节?如果你要求 sizeof(int) 它可能已经分配了 4kb 并且你不会更聪明。
-
std::cout
-
修复它... int 通常有 4 个字节而不是 2 个字节,但问题很好。
-
这可能很有趣:en.wikipedia.org/wiki/…
-
如果您有可用的 K&R,那么它显示了一种实现
malloc()等的方法。从根本上说,malloc()将有关它已分配并提供给程序员的块大小的信息保存在某处;通常,它就在malloc()给出的指针之前。malloc()总是将分配四舍五入到一个方便的大小(供它使用);这通常是 32 位系统的 8 字节的倍数和 64 位系统的 16 字节的倍数。
标签: c++ c malloc virtualalloc