Reputation: 26159
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;
}
Upvotes: 3
Views: 349
Reputation: 847
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>
.
Upvotes: 9