在Stack中创建不会产生任何错误 在堆中创建动态生成错误。
int a;
cin>>a;
int B[a]; // OK
int A[] = new int[a]; // error: variable-sized object 'A' may not be initialized
为什么第二个导致错误?
答案 0 :(得分:4)
B [a]是非法的。数组大小需要在编译时知道。 'A'应该是int *而不是int []。
int* A=new int[a];