gpt4 book ai didi

C 结构体和 union 在一起

转载 作者:行者123 更新时间:2023-11-30 20:57:58 24 4
gpt4 key购买 nike

我有以下代码。

struct Node {
struct Node *next;
char type[12];
union {
struct A *a;
};
};

int main() {
char *x[6];
x[1] = "a";
x[2] = "bc";
x[3] = "bf";
x[4] = "bd";
x[5] = "ab";
x[6] = "b";

struct Node *new = (struct Node*) malloc(sizeof(struct Node));

struct A*a = (struct A*) malloc(sizeof(struct A));
*a->a = x[1];
*a->b = x[2];
*a->c = x[3];
*a->d = x[4];
new.a = a;
}

我试图为 a 的每个属性赋予一个值,但我不断收到如下错误。

struct or union expected at  //*a->c= x[3];//

我也尝试过这个

*a.c= x[3];
a.c = x[3]

如何修复这个错误?

最佳答案

表达式*a->c等于*(a->c)。也就是说,您尝试取消引用 c 成员。

您收到的错误是因为 a->c 不是指针或数组。您不能对非指针或数组的内容使用取消引用运算符。

尝试取消引用 a->d 时,您也应该得到相同的错误。

您可能根本不应该在此处使用取消引用(即您只需删除星号)。

关于C 结构体和 union 在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54958254/

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