首页 文章

c在编译时分配的内存

提问于
浏览
1

我读到,在运行时期间在堆上分配动态内存时,在编译期间在堆栈上分配静态内存,因为编译器知道在编译时需要分配多少内存 .

请考虑以下代码:

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

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

1 回答

  • 4

    由于您指定的确切原因,您将无法编译它 . C需要有一个固定的数字才能进行编译 . 如果要这样做,则必须使用动态分配 .

相关问题