C++で疑問に思ったことがあるのですが、
newで確保した時に配列のように初期値のセットはできないのでしょうか?
int *p = new int[ 8 ] = { 0, 1, 2, 3, 4, 5, 6, 7 };
とやったらエラーになってしまいました。
どなたかご存知でしたら、教えてはもらえないでしょうか?
それではよろしくお願いいたします。
> newで確保した時に配列のように初期値のセットはできないのでしょうか?
できません。 C++/CLIでならできますけど。
> newで確保した時に配列のように初期値のセットはできないのでしょうか?
できません。
int n[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
int* p = new int[ sizeof( n ) / sizeof( int ) ];
memcpy( p, n, sizeof( n ) );
とでもするしかないような。
了解いたしました。
Blueさん
int n[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
int* p = new int[ sizeof( n ) / sizeof( int ) ];
memcpy( p, n, sizeof( n ) );
考えませんでした、少し面白いと思いました♪
ちなみにC++/CLIとは何でしょうか?
新しい言語でしょうか?
すいません。解決を忘れました。
> ちなみにC++/CLIとは何でしょうか?
> 新しい言語でしょうか?
.NETに対応すべくこれでもかと拡張したC++です。
もはやC++とは言えないほどのC++
// C++/CLI
array<int>^ n = gcnew array<int> { 0, 1, 2, 3, 4, 5, 6, 7 };
for each ( int x in n ) { // print all elements
std::cout << x << std::endl;
}
array< int >^ n = { 0, 1, 2, 3, 4, 5, 6, 7 };
でいいかと思ったら
> array<int>^ n = gcnew array<int> { 0, 1, 2, 3, 4, 5, 6, 7 };
なんですね。よくわからないけど。
あれ?一緒か。。。
ローカルウィンドウの表示が違うから違うかと思った罠。(2005 Express Beta)