タグ付けされた質問 「variable-length」

12
可変長配列がC ++標準に含まれていないのはなぜですか?
ここ数年はCをあまり使っていません。今日この質問を読んだとき、私は知らないC構文に出くわしました。 どうやらC99では次の構文が有効です。 void foo(int n) { int values[n]; //Declare a variable length array } これはかなり便利な機能のようです。これをC ++標準に追加することについての議論はありましたか?その場合、なぜそれが省略されたのですか? いくつかの潜在的な理由: コンパイラベンダーが実装するのは難しい 標準の他の一部と互換性がない 機能は他のC ++構造でエミュレートできます C ++標準では、配列サイズは定数式である必要があると規定されています(8.3.4.1)。 はい、もちろん私はおもちゃの例ではを使用できることを理解してstd::vector<int> values(m);いますが、これはスタックではなくヒープからメモリを割り当てます。そして、私が次のような多次元配列が必要な場合: void foo(int x, int y, int z) { int values[x][y][z]; // Declare a variable length array } vectorバージョンはかなり不器用次のようになります。 void foo(int x, int y, int z) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.