作者:爱夏花儿_915 | 来源:互联网 | 2023-01-30 14:51
今天突然用到结构体中的结构体,但不知怎么定义和动态分配空间?求大侠赐教。谢谢。
6 个解决方案
为外层结构体malloc 了,它的结构体成员变量还需要malloc 吗?
你定义一个结构体,是不会分配空间的,这个时候其实只相当于定义了一种数据类型,和int、float等一个概念
比如
struct STU
{
char name[];
int Num;
};
这个时候只是定义了一种结构体数据类型。
当你使用这种结构体数据类型定义一个变量的时候(假设是全局变量),就会分配空间了,当然局部自动变量的话调用程序才分配。
例如:struct STU student;
这个时候就定义了一个STU这种结构数据类型的变量student,占用的空间是sizeof(STU)
在c语言中,结构体中不可以再定义结构体变量,但可以定义结构体指针!c++中可以。
struct student
{
int id;
char name[20];
float score;
};
strutc student *stu=(strutc student *)malloc(sizeof(struct student));