配列に要素を設定する方法があります- int rgArrayNum [] = {16, 2, 77, 40, 12071};
new を使用してポインターで同じ方法を実行するにはどうすればよいですか? 試してみint *pArrayNum = new [] = {4 ,3 ,3} ;
ましたが、うまくいきませんでした。
質問する
83 次
3 に答える
7
c ++ 11では、次のように書くことができます。
int *pArrayNum = new int[3]{4, 3, 3};
ただし、c ++ 03アレイでは、新しい初期化は許可されていません。メンバーを個別に初期化するか、スタック上の配列からコピーして初期化する必要があります。
int rgArrayNum [] = {16, 2, 77, 40, 12071};
int *pArrayNum = new int[sizeof rgArrayNum / sizeof rgArrayNum[0]];
std::copy(&rgArrayNum[0], &rgArrayNum[sizeof rgArrayNum / sizeof rgArrayNum[0]],
pArrayNum);
于 2012-08-30T13:53:58.313 に答える
3
C ++ 03以前では、動的配列の値をゼロ以外に初期化することはできません。
C++11でも同様のことができます。
int *pArrayNum = new int [3] {4, 3, 3};
または、コンテナを使用してメモリを管理してもかまわない場合:
std::vector<int> array = {4, 3, 3};
于 2012-08-30T13:54:01.670 に答える
0
整数ではなく整数ポインターを使用して配列を作成する必要があります。
int* rgArrayNum2 [] = {new int(16), new int(16), new int(16), new int(16), new int(16)};
//test
int* test = rgArrayNum2[2];
*test = 15;
現在、rgArrayNum2[2] は 15 です。
于 2012-08-30T13:55:36.970 に答える