Ant*_*yrd 3 c++ arrays pointers
我试图用C++声明一个数组,但我一直收到这个错误.
错误C2440:'初始化':无法从'int*'转换为'int []'
这条线
int b[] = new int[elements];
Run Code Online (Sandbox Code Playgroud)
完整代码
int* reverseArray (int a[] ,int elements)
{
int *pointer;
int x= elements-1;
int b[] = new int[elements];
pointer=b[];
for (int i= 0; i < elements; i++)
{
b[i] = a[x--];
}
return pointer;
}
Run Code Online (Sandbox Code Playgroud)
new 返回一个指针,所以你应该改变
int b[] = new int[elements];
Run Code Online (Sandbox Code Playgroud)
至
int* b = new int[elements];
Run Code Online (Sandbox Code Playgroud)
你应该删除pointer并简单地返回b,所以
int* reverseArray (int a[] ,int elements)
{
int x = elements-1;
int* b = new int[elements];
for (int i = 0; i < elements; ++i)
b[i] = a[x--];
return b;
}
Run Code Online (Sandbox Code Playgroud)
但你应该考虑使用std::vector.如果你使用a std::vector来反转数组,你可以简单地使用std::reversefrom <algorithm>.