不确定我为什么会收到此错误。我有以下内容:
int* arr = new int[25];
int* foo(){
int* i;
cout << "Enter an integer:";
cin >> *i;
return i;
}
void test(int** myInt){
*myInt = foo();
}
This call here is where I get the error:
test(arr[0]); //here i get invalid conversion from int to int**
答案 0 :(得分:7)
您编写它的方式,test
会指向指向int
的指针,但arr[0]
只是int
。
但是,在foo
中,您正在提示int
,但会读取一个未初始化指针值的位置。我原以为您希望foo
阅读并返回int
。
E.g。
int foo() {
int i;
cout << "Enter an integer:";
cin >> i;
return i;
}
在这种情况下,测试采用指向int的指针(即void test(int* myInt)
)是有意义的。
然后你可以传给一个指向你动态分配的int
之一的指针。
test(&arr[0]);