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 回答