C ++的错误定义阵列时 [英] C++ error when defining array
本文介绍了C ++的错误定义阵列时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试着在C中声明数组++,但我不断收到此错误。
错误C2440:初始化:不能从'诠释*'转换为'廉政[]
块引用>此行
INT B〔] =新的INT [内容]
的 展开code 的
为int * reverseArray(int类型的[],诠释元素)
{
为int *指针;
INT X =元素-1;
INT B〔] =新的INT [内容]
指针= B [];
的for(int i = 0; I<要素;我++)
{
B〔I] = A [x--];
}
返回指针;
}
解决方案
新
返回一个指针,所以你应该更改INT B〔] =新的INT [内容]
到
为int * B =新INT [内容]
和你应该只删除
指针
并简单地返回B
,所以为int * reverseArray(int类型的[],诠释元素)
{
INT X =元素-1;
为int * B =新INT [内容]
的for(int i = 0; I<要素; ++ I)
B〔I] = A [x--];
返回b;
}但是,你真的应该考虑使用
的std ::矢量
。如果使用的std ::矢量
,扭转数组,你可以简单地使用的std ::逆转
从<算法方式>
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; }
解决方案
new
returns a pointer, so you should changeint b[] = new int[elements];
to
int* b = new int[elements];
and you should just remove
pointer
and simply returnb
, soint* 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 astd::vector
, to reverse the array, you can simply usestd::reverse
from<algorithm>
.这篇关于C ++的错误定义阵列时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文