有一种方法可以在数组上设置元素 - int rgArrayNum [] = {16, 2, 77, 40, 12071};
如何用新的指针做同样的方式?我试过了int *pArrayNum = new [] = {4 ,3 ,3} ;
,但没有奏效。
答案 0 :(得分: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);
答案 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。