#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は実際には可変サイズの配列を許可しているということです。これは奇妙なことです。int* array = new int[size];
可変サイズ配列を作成する唯一の方法は、またはそれ以上の動的割り当てを使用することであると誰もが言っているのを聞いているからですstd::vector
。GCCはそのコードを許可しないと思いました!
とにかく、私の理論的な質問は、配列がヒープまたはスタック領域myArray
に割り当てられているということです。