gpt4 book ai didi

C 分配 : inexplicable memory usage

转载 作者:行者123 更新时间:2023-12-04 11:36:15 25 4
gpt4 key购买 nike

当我编译并运行以下代码时:(在 cygwin 上使用 gcc)

int *a = malloc(1024*1024*100*sizeof(int));
while(1)
;

Windows XP 中的任务管理器显示此进程的内存使用量为 2232K,根据我的说法,这应该在 400000K 左右。

当我编译并运行以下代码时:(在 cygwin 上使用 gcc)

int *a = malloc(1024*1024*400*sizeof(int));
while(1)
;

内存占用下降到1388K;

所以,与其说是增加,不如说是显示下降。

什么可以解释这个?

最佳答案

你已经分配了内存,使其可用,但还没有使用它(读或写)。内存管理器可能还没有真正为你的程序分配物理内存,只是说你可以拥有它。如果您在刚刚分配的内存中写入一些内容(例如,用 0 填充它——为此查看 memset),我预计内存使用量会更符合您的预期。

关于C 分配 : inexplicable memory usage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1113830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com