Sma*_*acL 4 c++ heap visual-c++
在Visual C++中,如果我使用new在堆上创建一个对象,那么堆帧头和填充需要多少额外空间,特别是在发布代码中?我希望int可以说块中有多少可用空间,另一个可能是说当前正在使用多少空间,并且帧大小根据体系结构四舍五入到最接近的32位或64位.只是想知道VC++是否添加了保护字节,标志等额外的东西......并且帧大小四舍五入到更大的最小尺寸.换句话说,对于大量数据,在堆上使用大量小块数据是多么低效.
Hackety下锅:
int* p = new int;
int* q = new int;
std::cout << (char*)q - (char*)p << std::endl;
Run Code Online (Sandbox Code Playgroud)
是的我知道,技术上未定义的行为,但我认为它应该回答问题:)