动态版本的通讯录是在静态版本上进行的一次优化,即实现按照需求开辟空间。和之前版本有所不同,不用一个结构体数组来存放联系人,而是用了一个结构体指针。如下:
#define NAME 20
#define SEX 5
#define TELE 12
#define ADDR 30
#define DEFAULT_SZ 3//初始容量
#define INC_SZ 2//扩容
//联系人信息
struct message
{
//姓名
char name[NAME];
//性别
char sex[SEX];
//电话
char tele[TELE];
//住址
char addr[ADDR];
//年龄
int age;
};
//通讯录
struct contact
{
struct message* data;//结构体指针
int sz;//个数
int capacity;//通讯录容量
};
由于是动态版本的,所以在初始化、增加联系人、以及最后的退出里,有了一定的修改,别的只要不涉及增加空间的操作,都与静态版本相同。这里就不一一再写了。
根据提供的参考资料和问题描述,我无法得出具体的解决方案。请提供更多关于你问题的背景和具体要求的信息,我将尽力帮助你解决问题。