编译时分配的 C++ 内存

c++ memory allocated at compile time

本文关键字:C++ 内存 分配 编译      更新时间:2023-10-16

我读到,虽然动态内存在运行时在堆上分配,但静态内存在编译时在堆栈上分配,因为编译器知道编译时必须分配多少内存。

请考虑以下代码:

int n;
cin>>n;
int a[n];

如果 a[] 的实际大小仅在运行期间读取,编译器如何知道在编译时为 a[] 分配多少内存?

由于您指定的确切原因,您将无法编译它。C++需要有一个固定的数字才能执行编译。如果要执行此操作,则必须使用动态分配。