动态和静态内存分配?

时间:2014-08-11 01:49:25

标签: c++ memory-management variable-length-array

  int x;
    cin>>x;
    int arr[x];

代码不能编译,因为程序会尝试为堆栈上的数组分配未知内存,但是要编译! 我知道动态内存是什么,我已经阅读了很多关于这个,但我不明白,为什么上面的程序运行?!不应该这样吗? :

int x;
cin>>x;
int *arr=new arr[x];

有人可以给我一个例子,它不能用于静态分配,只适用于动态分配吗?

1 个答案:

答案 0 :(得分:4)

某些编译器可能会为从堆栈分配的数组启用动态大小。但它不是标准的C ++。