0

配列に要素を設定する方法があります- int rgArrayNum [] = {16, 2, 77, 40, 12071}; new を使用してポインターで同じ方法を実行するにはどうすればよいですか? 試してみint *pArrayNum = new [] = {4 ,3 ,3} ;ましたが、うまくいきませんでした。

4

3 に答える 3

7

では、次のように書くことができます。

int *pArrayNum = new int[3]{4, 3, 3};

ただし、アレイでは、新しい初期化は許可されていません。メンバーを個別に初期化するか、スタック上の配列からコピーして初期化する必要があります。

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 に答える