[英]Invalid conversion from int to int** C++
不知道为什么我得到这个错误。 我有以下几点:
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**
编写代码的方式是, test
将一个指针指向一个指向int
的指针,但是arr[0]
只是一个int
。
但是,在foo
您提示输入int
,但读入的位置是未初始化指针的值。 我本以为您要foo
读取并返回int
。
例如
int foo() {
int i;
cout << "Enter an integer:";
cin >> i;
return i;
}
在这种情况下,测试采用指向int的指针是有意义的(即void test(int* myInt)
)。
然后,您可以向它传递一个指向您动态分配的int
的指针。
test(&arr[0]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.