结构指针
为结构指针动态分配内存
结构中的结构
双向链表
结构指针
struct mytime
{
//char name[256];
int hour;//时
int min; //分
int sec; //秒
};
struct stu_data
{
char name[256];//学生名字
struct mytime stuTime;//签到时间
} ;
struct stu_data *stu; // int *pi;
为结构动态分配内存
stu=malloc(sizeof(struct stu_data)); //256+12=268
结构中的结构
struct stu_data
{
char name[256];//学生名字
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[256];//学生名字
struct mytime stuTime;//签到时间
struct stu_data* front; //指向前一个结点
struct stu_data* back; //指向后一个结点
} ;
stu=malloc(sizeof(struct stu_data)); //256+12=268
1 front back
name stuTime ... 其它数据 NULL 2
2
name stuTime ... 其它数据 1 3
3
name stuTime ... 其它数据 2 4
4
name stuTime ... 其它数据 3 xx
XX
name stuTime ... 其它数据 4 0x0041118
0x0041118
name stuTime ... 其它数据 xx NULL