int main(){
int size;
cin >> size;
int myArray[size];
return 0;
}
myArray
スタックに割り当てられていますか? コンパイル時にサイズが不明な場合はどうすればよいでしょうか?
余談ですが、動的にサイズ変更された配列をスタックに割り当てることは可能ですか?
これらは悪い習慣かもしれませんが、良い習慣かどうかではなく、許可されているかどうかを尋ねています。
はい、これが許可されている場所/時間 (gcc では拡張機能として許可されていますが、実際には C++ では許可されていません)myArray
がスタックに割り当てられます。実装は非常に簡単です。サイズを選択し、スタック ポインターから減算します。
前述のように、C++ は現在これを許可していませんが、dynarray
それを許可するクラスの提案が C++ 14 のワーキング ペーパーに受け入れられているため、(おそらく) 似たようなものがすぐに許可されます (コンパイラがまだ許可していない場合)。 -- テストしたことはありませんが、簡単に実行できる人もいます)。