我确定这已经被问过了,但是搜索“ 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++ - C++基本双指针传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15316935/

10-09 18:30