使用new设置数组元素

时间:2012-08-30 13:50:43

标签: c++ arrays

有一种方法可以在数组上设置元素 - int rgArrayNum [] = {16, 2, 77, 40, 12071}; 如何用新的指针做同样的方式?我试过了int *pArrayNum = new [] = {4 ,3 ,3} ;,但没有奏效。

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:3)

在C ++ 03及更早版本中,您无法将动态数组的值初始化为零以外的任何值。

你可以在C ++ 11中实现类似的东西:

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

或者如果您不介意使用容器来管理内存:

std::vector<int> array = {4, 3, 3};

答案 2 :(得分: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。