C++ error when defining array

arrays, c++, pointers

Solution

`new` returns a pointer, so you should change

int b[] = new int[elements];

to

int* b = new int[elements];

and you should just remove `pointer` and simply return `b`, so

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;
}

But you should really consider using `std::vector`. If you use a `std::vector`, to reverse the array, you can simply use `std::reverse` from `<algorithm>`.

Problem

Im trying to declare an array in C++ but i keep getting this error. error C2440: 'initializing' : cannot convert from 'int *' to 'int []' for this line ``` int b[] = new int[elements]; ``` Full Code ``` 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; } ```

Original source