【发布时间】:2023-04-04 01:07:01
【问题描述】:
我写了这段代码:
#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 字节的分配
发生了什么? 是否有可能为堆栈帧分配所有内存?
【问题讨论】:
-
您的应用程序本身也会消耗内存。查看输出 .EXE 文件的大小。
标签: c++ memory visual-studio-2015 diagnostic-tools