我确定之前有人问过这个问题,但是搜索“c++”“指针”“函数”“数组”让我无处可去。
我在 main 中声明了一些内容,如下所示:
struct point{
float x;
float y;
int m;
float points[10];
point *next;
};
struct neighbor{
float dist;
point *pt;
};
neighbor **candidate = NULL;
我想将“候选人”传递给一个我可以做的函数:
candidate = new neighbor*[10];
for(int i = 0;i<10;i++)
candidate[i] = new neighbor;
用各种数据填充它,然后在不使用 return 语句的情况下退出函数(这很重要,因为我使用的是 boost 线程,它不能使用除 void 以外的函数)并且让 main 函数能够看到改变了功能。
抱歉,这太基础了,但我认为正确的东西不起作用,而且我似乎找不到我要找的东西。 提前致谢
最佳答案
接受引用:
void fun(neighbor **& candidate);
或者一个指针:
void fun(neighbor *** candidate);
在 C++ 中需要双指针间接寻址的理由几乎为零。您几乎可以肯定没有充分利用语言。
关于C++ 基本双指针传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316935/