Visual C++ 中的堆框架有多大

2024-01-23

在 Visual C++ 中,如果我使用 new 在堆上创建对象,堆帧头和填充会占用多少额外空间,特别是在发布代码中?我期望一个 int 表示块中有多少可用空间,另一个可能表示当前正在使用多少空间,并且帧大小根据体系结构四舍五入到最接近的 32 或 64 位。只是想知道 VC++ 是否添加了任何额外的内容,例如保护字节、标志等……并且帧大小是否四舍五入到更大的最小大小。换句话说,对于大量的数据,在堆上使用大量的小数据块是多么低效啊。


Hackety-hack:

int* p = new int;
int* q = new int;
std::cout << (char*)q - (char*)p << std::endl;

是的,我知道,技术上未定义的行为,但我认为它应该回答这个问题:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual C++ 中的堆框架有多大 的相关文章