gpt4 book ai didi

c - 如何将结构指针变量作为参数传递以便在 C 中对其进行编辑

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:56 26 4
gpt4 key购买 nike

C语言

如何将结构指针变量作为参数发送给要编辑该结构变量的函数?

我在单独的头文件中有以下结构:

typedef struct {
unsigned int id;
unsigned int value;
} type1;

typedef struct {
unsigned int id;
type1 children[32];
unsigned int numChildren;
} person;

我希望能够做到这一点:

void person_editID(person *p, unsigned int newID) {
p->id = newID;
}

在此:

void function2() {
person *p;
person_editID(p,2);
printf("Person ID: %d\n",p->id);
person_editID(p,4);
printf("Person ID: %d\n",p->id);
}

(这两个函数在不同的文件中)

得到结果:

Person ID: 2
Person ID: 4

但是上面的代码有一个错误:

SIGSEGV... bad addr 0x0 (dataseg); err 0x6 nopage write ...

是不是因为function2 p没有初始化?如果是这样,我该如何初始化它?

最佳答案

改变这个:

person *p;

对此:

person p;

还有这个:

person_editID(p,2);

对此:

person_editID(&p,2);

关于c - 如何将结构指针变量作为参数传递以便在 C 中对其进行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com