C ++ error when defining an array

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;
}
+3
source share
2 answers

new returns a pointer, so you have to change

int b[] = new int[elements];

to

int* b = new int[elements];

and you should just delete pointerand just return b, therefore

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 really have to use std::vector. If you use std::vectorto cancel an array, you can just use std::reversefrom <algorithm>.

+9
source

Use vectors - much easier to use

0
source

All Articles