newでの初期化について – プログラミング – Home

通知
すべてクリア

[解決済] newでの初期化について


K
 K
(@K)
ゲスト
結合: 23年前
投稿: 98
Topic starter  

C++で疑問に思ったことがあるのですが、
newで確保した時に配列のように初期値のセットはできないのでしょうか?

int *p = new int[ 8 ] = { 0, 1, 2, 3, 4, 5, 6, 7 };

とやったらエラーになってしまいました。
どなたかご存知でしたら、教えてはもらえないでしょうか?
それではよろしくお願いいたします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> newで確保した時に配列のように初期値のセットはできないのでしょうか?

できません。 C++/CLIでならできますけど。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> newで確保した時に配列のように初期値のセットはできないのでしょうか?
できません。

int n[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
int* p = new int[ sizeof( n ) / sizeof( int ) ];
memcpy( p, n, sizeof( n ) );

とでもするしかないような。


返信引用
K
 K
(@K)
ゲスト
結合: 23年前
投稿: 98
Topic starter  

了解いたしました。
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とは何でしょうか?
新しい言語でしょうか?


返信引用
K
 K
(@K)
ゲスト
結合: 23年前
投稿: 98
Topic starter  

すいません。解決を忘れました。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> ちなみに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;
}


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 19年前
投稿: 59
 

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 };
なんですね。よくわからないけど。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 19年前
投稿: 59
 

あれ?一緒か。。。
ローカルウィンドウの表示が違うから違うかと思った罠。(2005 Express Beta)


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました