0

我敢肯定这已经被问过,但搜索“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 以外的函数)并且让主函数能够看到函数的变化做过。

抱歉,这太基本了,但我认为正确的方法不起作用,我似乎找不到我要找的东西。提前致谢

4

1 回答 1

2

Accept a reference:

void fun(neighbor **& candidate);

Or a pointer:

void fun(neighbor *** candidate);

There's almost zero reason to ever need double pointer indirection in C++. You're almost certainly not leveraging the language to its best.

于 2013-03-09T23:07:53.020 回答