#include <iostream>
using namespace std;
int main(int argc, const char * argv[])
{
int size;
cin >> size;
int myArray[size]; //this shouldn't compile , right ?
return 0;
}
我认为这不会编译,但它实际上(使用 g++ 命令)。
我后来发现,即使标准 C++ 不支持可变大小的数组,GCC 实际上也允许可变大小的数组,这很奇怪!因为我听到每个人都说创建可变大小数组的唯一方法是使用动态分配 likeint* array = new int[size];
或 better std::vector
。我以为 GCC 不允许那段代码!
无论如何,我的理论问题是,myArray
数组是分配在堆区还是堆栈区?