Я работаю над алгоритмом дерева. Эти структуры в моей программе:Доступ к структуре в структуре
typedef struct{
double m;
double x[DIM];
double v[DIM];
} Particle;
typedef struct{
double lower[DIM];
double upper[DIM];
} Box;
typedef struct Node{
Particle p;
Box box;
struct Node *son[4];
} Node;
Теперь я написал функцию myFunctA(), которая определяется по формуле:
void myFunctA(Particle *p, Node *t){
int b=soNum(&t->box, &t->son->box, p); // Why does "&t->son->box" not work?
// do stuff ...
}
В рамках функции myFunctA() Я хочу, чтобы передать box
из t
и box
от son
от t
до функции soNum()
. soNum()
дается
int soNum(Box *box, Box *sonbox, Particle *p){
// do stuff ...
}
Я пытаюсь сделать это с помощью &t->son->box
, который не работает. Я также пробовал (&t->son)->box
. Я получаю ошибку всегда:
error: request for member ‘box’ in something not a structure or union
int b=soNum(&t->box, &t->son->box, p);
Я думаю, что это легко, но я до сих пор совершенно новой для C и найти его как-то трудно увидеть. Я надеюсь, что кто-то может мне помочь!
't-> Сон-> коробка' должно быть что-то вроде 't-> сын [INDEX] -> box' – PSkocik