struct数组的参数的类型不兼容

时间:2018-04-02 15:55:15

标签: c arrays function pointers struct

我有一个定义为

的结构
struct Bod{
  int x, y;
};

然后我有一个功能

void add(struct Bod* s) {
    h[++nh] = s;
}

在下一个函数中,我试图将数组传递给前一个函数,这给了我错误函数add()的参数1的不兼容类型

void bfs(struct Bod* body, int start_index){

    struct Bod* v;
    add(body[start_index]);
    ...
}

在main中,我已经像这样创建了这个结构数组

struct Bod body[m*n];

我错过了什么?

1 个答案:

答案 0 :(得分:2)

由于body[start_index]在索引body为您提供start_index一个元素,因此您最终会将该单个元素传递给add()。< / p>

如果你想传入数组本身,你只需按原样传递body

add(body);

或者,从给定索引开始传递数组:

add(&body[start_index]);