结构指针
为结构指针动态分配内存
结构中的结构
双向链表
结构指针
struct mytime
{
//char name[256];
int hour;//时
int min; //分
int sec; //秒
};
struct stu_data
{
char name[];//学生名字
struct mytime stuTime;//签到时间
} ;
struct stu_data *stu; // int *pi;
为结构动态分配内存
stu=malloc(sizeof(struct stu_data)); //256+12=268
结构中的结构
struct stu_data
{
char name[];//学生名字
struct mytime
{
//char name[256];
int hour;//时
int min; //分
int sec; //秒
} stuTime;//签到时间
} ;
struct mytime t2;
struct stu_data *stu;
双向链表结构
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。
struct mytime
{
//char name[256];
int hour;//时
int min; //分
int sec; //秒
};
struct stu_data
{
char name[];//学生名字
struct mytime stuTime;//签到时间
struct stu_data* front; //指向前一个结点
struct stu_data* back; //指向后一个结点
} ;
stu=malloc(sizeof(struct stu_data)); //256+12=268
front back
name stuTime ... 其它数据 NULL
name stuTime ... 其它数据
name stuTime ... 其它数据
name stuTime ... 其它数据 xx
XX
name stuTime ... 其它数据 0x0041118
0x0041118
name stuTime ... 其它数据 xx NULL