我写了这段代码:
#include "Colour.h"
int main(int argc, char** argv) {
//sizeof(Colour) = 3
Colour* data = new Colour[8 * 8];
for (int y = 0; y < 8 * 8; y++)
{
data[y] = Colour::WHITE;
}
}
在此示例中,Color是一个三字节大的结构
因此我希望这个程序能够分配8 * 8 * 3 = 192
个字节。
但是在诊断工具面板中,它显示了889 kB
?
奇怪的是,当我深入挖掘时,通过创建内存快照,它显示堆大小为71kB
。但是当查看源时,它只显示一个大小为192字节的分配
发生了什么事? 是否有可能为堆栈帧分配所有内存?