gpt4 book ai didi

c++ - 在任务管理器上看到已分配的内存

转载 作者:行者123 更新时间:2023-12-02 09:54:44 25 4
gpt4 key购买 nike

我想分配1 GB的内存。假设int占用4个字节,要分配1 GB,我需要一个250000000个元素的数组:

int main() { 
string s;

cout << "Program paused" << flush;
getline(cin, s);
int * p = new int[250000000]{};
cout << "Program paused" << flush;
getline(cin, s);
delete [] p;
cout << "Program paused" << flush;
getline(cin, s);
}

Windows任务管理器显示我的程序使用954 MB。为什么小于1 GB?

编辑:任务管理器还显示操作系统为该进程保留了979,100 MB的虚拟内存,但该内存仍小于1 GB。

最佳答案

250,000,000 bytes * 4,而不是 1GB。请记住,千兆字节(more accurately, a Gibibyte)为1024兆字节(兆字节),每个兆字节为1024千字节(兆字节),即1024字节。

要分配1 GiB(假设为sizeof(int) == 4),您需要:

const size_t len = ( 1024 * 1024 * 1024 ) / sizeof(int); // 268,435,456 
int* p = new int[ len ]{};

关于c++ - 在任务管理器上看到已分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61170175/

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