为什么我需要中间变量来通过引用传递我的返回指针而不是只使用返回该指针的函数?
这不会编译
int main ()
{
testfunc(getpointer());
return 0;
}
错误:C2664:' void testfunc(int *&)':无法从' int *'转换参数1到' int *&'
并编译
int main ()
{
int *i = getpointer();
testfunc(i);
return 0;
}
我的两个职能
void testfunc(int *& i) // I have to use this interface
{
cout << i[0] <<endl;
}
int* getpointer()
{
int * arr1 = new int[1];
arr1[0]=10;
return arr1;
}
答案 0 :(得分:5)
C ++语言禁止将非const引用绑定到临时引用。在这种情况下,简单的解决方法是让testfunc
对int*
进行const引用。