gpt4 book ai didi

c - 分配与初始化 : Initializing structs inside another struct in C

转载 作者:行者123 更新时间:2023-12-01 08:17:00 26 4
gpt4 key购买 nike

我有一个包含两个字段的结构,它们本身就是结构。我想使用初始化列表来分配内部结构的字段,而不必手动分配每个字段。

struct point
{
int x;
int y;
};

struct rectangle
{
struct point p1;
struct point p2;
};

struct rectangle r2;
r2.p1 = {5, 6};
r2.p2 = {7, 20};

但是这段代码无法编译:

structs3.c:105:11: error: expected expression before ‘{’ token
r2.p1 = {5, 6};
^
structs3.c:106:11: error: expected expression before ‘{’ token
r2.p2 = {7, 20};
^

为什么这行不通?这是什么原因?

最佳答案

你可以在定义 r2 时这样做,比如

struct rectangle r2 = {
{5, 6},
{7, 20}
};

或使用 compound literals

r2.p1 = (struct point){5, 6};
r2.p2 = (struct point){7, 20};

关于c - 分配与初始化 : Initializing structs inside another struct in C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50848253/

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