BIG EDIT:
好的,我原来的问题对我没有帮助。这是第二次。
我的结构看起来像这样:
struct node {
char *name;
int age;
struct node *nextName;
struct node *nextAge;
};
我必须用这样的结构制作两个链表。 所以我有'rootAges'来跟踪基于年龄的列表的开始和位置 'rootNames'跟踪名称的起始位置。我似乎无法更新这些内容。
也就是说,我有struct node * rootAges和struct node * rootNames。 我需要将这两个传递给一个将元素添加到列表中的函数。 但是,当我向列表添加内容时,我还需要改变根源。 到目前为止提供的方法,例如在main函数中,当在add函数中被改变时,没有改变rootAges的值。
谢谢!
答案 0 :(得分:5)
将结构实例的地址传递给接受C中指针的函数。
void fn(struct data *p)
{
if(p)
p->x = 33;
}
//... main ...
struct data d;
fn(&d);
//d.x == 33
答案 1 :(得分:1)
将指针传递给结构。
例如:
typedef struct data{ int x;} s_data;
void foo (s_data* pointer){}
s_data s={0};
foo(&s);
答案 2 :(得分:0)
声明
void Foo(struct data *);
定义
void Foo(struct data *p)
{
//body
}
在您的代码中
Foo(root);