gpt4 book ai didi

c - 使用 -> 运算符初始化结构指针

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

我必须使用指向它的点来初始化一个结构,upper_left 是点 (10,25) 和 lower_right(20,15)

struct point {int x, y;};
struct rectangle {struct point upper_left, lower_right;};

struct rectangle *p;

p = malloc(sizeof(*p));

p->upper_left.x = 10;
p->upper_left.y = 25;
p->lower_right.x = 20;
p->lower_right.y = 15;


有没有什么办法可以做到更“紧凑”,而不是一个接一个?我已经试过了,但是编译器的错误是相同的“‘{’标记之前的预期表达式”

p->upper_left = {10, 25};
p->lower_right = {20,15};

/////////////
p->upper_left = {.x = 10, .y = 25};
p->lower_right = {.x = 20, .y = 15};

//////////////////////////////

*p = {.upper_left = {10, 25}, .lower_right = {20, 15}};

最佳答案

是复合字面量

  p->upper_left = (struct point){10, 25};

*p = (struct rectangle){.upper_left = {10, 25}, .lower_right = {20, 15}};

您可以在这里进行实验:https://godbolt.org/z/yw_JC0

关于c - 使用 -> 运算符初始化结构指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55884565/

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