C++初始化数组指针

som*_*ho3 13 c++ arrays pointers

如何初始化指向文字数组的指针?
我希望*grid指向新分配的int数组{1,2,3}.

int *grid = new int[3];
*grid = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

谢谢.

Arm*_*yan 10

您不能以这种方式初始化动态分配的数组.您不能以这种方式分配给数组(动态或静态).该语法仅在初始化静态数组时有效,即

int a[4] = {2, 5, 6, 4};
Run Code Online (Sandbox Code Playgroud)

我的意思是即使以下是非法的:

int a[4];
a = {1, 2, 3, 4}; //Error
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你什么都不做,但手工复制每个元素的velue

for (int i = 1; i<=size; ++i)
{
    grid[i-1] = i;
}
Run Code Online (Sandbox Code Playgroud)

您可以通过使用stl算法避免显式循环,但这个想法是相同的

其中一些可能在C++ 0x中变得合法,我不确定.