可能重复:
Stack中的动态数组?
编译器如何处理可变长度数组
我正在辅导的人编写了一些看起来像这样的代码,编译,运行正常,让我感觉像是一个完整的C++初学者:
int main(int argc, char** argv)
{
int Index=0;
cin>>Index;
int Test_array[Index][Index];
...
}
Run Code Online (Sandbox Code Playgroud)
现在,我找到了我的答案,为什么这在这里工作:关于C中的数组
但是,我仍然对如何进行审讯.
我的意思是,代码块的堆栈大小应该提前知道吗?所以肯定,Test_array不能存储在堆栈中......
编译器是否在后台执行new/malloc-delete/free操作以使用堆内存作为数组?
在这种情况下,如果在堆上找不到足够的内存,这样的代码会抛出bad_alloc异常吗?