c++ - 为什么我们将使用 "new"关键字创建的内存称为 "dynamic memory"因为它也是固定内存

标签 c++ memory dynamic heap-memory new-operator

以这种方式创建的数组 int a[5] 包含 5 个整数内存块,内存在运行时无法更改。 以这种方式创建的数组 int *ptr=new int[5] 也包含 5 个整数 block ,在这种情况下也无法在运行时增加和减少内存,因此,从这个角度来看它被称为动态内存。

最佳答案

口语术语“动态内存”来自语言定义术语“动态存储持续时间”。参见 Storage duration :

dynamic storage duration. The storage for the object is allocated and deallocated per request by using dynamic memory allocation functions. See new-expression for details on initialization of objects with this storage duration.

使用newnew[] 创建并使用deletedelete[] 销毁的对象具有动态存储持续时间。

它是动态的,因为生命周期在开发人员希望的时候开始和结束。每隔一个存储持续时间都有关于生命周期何时开始和何时结束的严格规则。它与数组大小或调整数组大小无关。非数组对象也可以具有动态存储持续时间。

关于c++ - 为什么我们将使用 "new"关键字创建的内存称为 "dynamic memory"因为它也是固定内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68834963/

相关文章:

c++ - 显示编译器对 as、ar、ld 等工具的调用或确定等效调用

java - 堆栈框架、方法调用和垃圾收集

c - wmemcpy 有什么意义?

javascript - 即时包含远程 js 文件?

javascript - 基于您当前网址的动态链接

c++ - 如何在 C++ 中一次将 4 个字节分配给 char 数组的特定索引

c++ - 在扩展中使用 stringstream 创建记录宏

c++ - 将成员函数传递给需要回调的 C 接口(interface)

c - 我们在用户输入过程中使用 & 符号,但为什么我们在 C 中的赋值过程中不需要它?

javascript - 同一页面上的 Google 内容实验和分析 : Adding scripts in correct order