C#ではこれを行うことができます:
char[] a = new char[] {'a', 'a', 'a'};
しかし、C ++でそのようなことを行うことはできますか?私は試した:
char *a = new char [] {'a', 'a', 'a'};
しかし、それはコンパイルされません。
C#ではこれを行うことができます:
char[] a = new char[] {'a', 'a', 'a'};
しかし、C ++でそのようなことを行うことはできますか?私は試した:
char *a = new char [] {'a', 'a', 'a'};
しかし、それはコンパイルされません。
なぜこれをしないのですか?:
char a[] = {'a', 'a', 'a'};
また、アレイを完全に使用することは避けてください。使用するstd::vector
これは C++ 仕様のバグです (この単純な構造をコンパイルできません)。サイズを指定する必要があります
char *a = new char [3] {'a', 'a', 'a'};
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1469を参照してください。型名を括弧で囲んだ場合、それはnew-type-id ではなく type-idであるため、構文上、サイズ式を省略できることに注意してください。だから、あなたが言うことを可能にする実装を見つけることができるかもしれません
char *a = new (char[]){'a', 'a', 'a'};
これが可能であるという明示的な意図ではないことは明らかですが (new
段落内のいくつかの規則はそれを禁止すると解釈できます)。
おそらく、C++で配列を使用したくないでしょう。std::vector
代わりに使用してください。
3'aに初期化することもできます。
std::vector<char> vectorOfChars(3, 'a');
コンパイラがC++11をサポートしている場合は、初期化子リストを使用することもできます。
std::vector<char> vectorOfChars{'a', 'a', 'a'};
私はあなたが欲しいものはこれだと思います:
const char a[] = {'a', 'a', 'a'};
文字列 a = "aaa"; a[0] , a[1] ..etc 文字列の 2 次元配列を作成したい場合、これははるかに簡単になります..etc