繁体   English   中英

从int到int **的无效转换C ++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM