int x;
cin>>x;
int arr[x];
代码不能编译,因为程序会尝试为堆栈上的数组分配未知内存,但是要编译! 我知道动态内存是什么,我已经阅读了很多关于这个,但我不明白,为什么上面的程序运行?!不应该这样吗? :
int x;
cin>>x;
int *arr=new arr[x];
有人可以给我一个例子,它不能用于静态分配,只适用于动态分配吗?
答案 0 :(得分:4)
某些编译器可能会为从堆栈分配的数组启用动态大小。但它不是标准的C ++。