我试图用C ++声明一个数组,但我一直收到这个错误。
错误C2440:'初始化':无法从'int *'转换为'int []'
这一行
int b[] = new int[elements];
完整代码
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;
}
答案 0 :(得分:9)
new
返回指针,因此您应该更改
int b[] = new int[elements];
到
int* b = new int[elements];
,您只需删除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;
}
但你应该考虑使用std::vector
。如果您使用std::vector
来反转数组,则只需使用std::reverse
中的<algorithm>
。
答案 1 :(得分:0)
使用vectors - 更容易使用