定义数组时C++错误

C++ error when defining array

本文关键字:错误 C++ 数组 定义      更新时间:2023-10-16

我试图用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;
}

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 ,要反转数组,只需使用 <algorithm> 中的std::reverse即可。

使用向量 - 更容易使用