2017-09-22 4 views
-2

私は未知のサイズの配列を宣言することについて質問があります。私はこのような構文が正当であるという印象の下にいました: char [] word しかし、私はコンパイルするときに正しくないです。私はポストフィックス記法に関する学校プロジェクトをやっています。私は方程式の大きさを正確に知っています。私はいつも上記の構文が合法だと思っていました。私はそれを使ったことを誓っていますか?あなたは未知のサイズの配列のためのメモリを割り当てるために新しいキーワードを使用する必要がありますか?初期サイズのない配列を定義していますか?

+0

それは有効ですが、不完全型です。あなたはそのようなことを作成することはできませんが、構文エラーではありません(他のものの中でも) –

+3

代わりにstd :: vectorを使用してください。 – Amadeus

+1

コンテキストに関する詳細情報が必要です。たとえば、関数パラメータとして有効です。構造体の最後のメンバー(検索用語:Flexible Array Member)としてCでも有効ですが、C++では有効ではありません。このトリックは、いくつかのコンパイラによってC++で拡張され、Cコードをコンパイルする可能性があります。これは非標準的な拡張であるため、すべてのコンパイラには存在しないか、それをサポートするコンパイラで同じ動作をすることは期待しないでください。 – user4581301

答えて

1

C++配列のサイズは、コンパイル時に決定する必要があります。つまり、定数でなければなりません。

コンパイル時にサイズが不明な場合は、std :: vectorを使用してください。

関連する問題