#include <stdio.h>
#include <stdlib.h>
int main()
{
struct point
{
int x, y;
};
struct rectangle
{
struct point upper_left, lower_right;
};
struct rectangle *p = malloc(sizeof(struct rectangle));
p->upper_left = {10,25};
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这给出:
#include <stdio.h>
#include <stdlib.h>
int main()
{
struct point
{
int x, y;
};
struct rectangle
{
struct point upper_left, lower_right;
};
struct rectangle *p = malloc(sizeof(struct rectangle));
p->upper_left = {10,25};
return 0;
}
Run Code Online (Sandbox Code Playgroud)
语法{ ... }是一个初始化列表,只能作为初始化的一部分出现,而不是赋值。
但是,您可以做的是使用复合文字(包括初始值设定项)来动态创建结构对象并将其用于赋值。
p->upper_left = (struct point){10,25};
Run Code Online (Sandbox Code Playgroud)