我写了这段代码:
#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 是一个 3 个字节大的结构
因此我希望这个程序分配8 * 8 * 3 = 192
字节。但是在诊断工具面板中,它显示了889 kB
?
奇怪的是,当我深入挖掘时,通过创建内存快照,它显示的堆大小为71kB
. 但是在查看源代码时,它只显示了一个大小为 192 字节的分配
怎么了?是否有可能为堆栈帧分配所有内存?