我有一个如图所示的结构。当我有一个指向结构的指针时,我可以正常初始化或修改它的任何成员。
struct node{
int key;
int nno;
char color;
struct node* out;
struct node* next;
struct node* pre;
};
但是,当我将结构指针的地址传递给函数并使用双指针捕获它并尝试使用该双指针访问成员时,我的编译器会抛出错误“成员未定义”。
void DFSVisit(struct node** u){
*u->color = 'g';
struct node* v;
while(*u->out != NULL){
v = *u->out;
if(v->color == 'w'){
v->pre = *u;
DFSVisit(&v);
}
}
*u->color = 'b';
}
而且,这就是我访问该功能的方式。
DFSVisit(&root);
Root 是一个正确初始化的指针。而且,Root 是一个全局变量。