gpt4 book ai didi

c++ - 运行 C++ 程序时 RAM 使用量没有变化

转载 作者:行者123 更新时间:2023-11-30 02:37:15 29 4
gpt4 key购买 nike

我写了一个简单的程序,试图查看内存中的变化,但没有任何变化。无论我是否运行代码,总是会出现大约 20% 左右的直线水平线。

#include<iostream>
using namespace std;
int main()
{
int *m;
int i;
cin>>i;
m = new int[i];
}

是否应该为 i 的任何值分配内存?并显示内存中的变化?

最佳答案

发生这种情况的原因可能有很多:

  1. 编译器优化 - 如果您打开编译器优化,它可能会确定您的 m 指针从未被使用,因此它会简单地删除 new[] 运营商调用;
  2. 操作系统优化 - 堆分配是操作系统内存管理器的业务。它只能在第一次内存使用时分配内存。例如 Windows API HeapAlloc 方法就是这样;
  3. 您的工具限制 - 内存分配/解除分配可能太快而无法捕获(基于您的示例);
  4. 内存分配失败 - 如果您的 i 值太大,堆管理器可能无法找到这样大小的连续内存块,所以 new 运算符将引发 bad_alloc 异常,您的程序将被终止。

关于c++ - 运行 C++ 程序时 RAM 使用量没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31868921/

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