有一种方法可以在数组上设置元素 -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 回答