动态内存--通讯录

静态实现:静态实现通讯录
动态实现的修改处:
1、存储人数的结构体修改

typedef struct mindan {
 int num ;
 information* everyone;
 int size;
 
}mindan;

2、初始化修改

void Init(mindan* book) {
 book->size = 0;
 book->num = 20;
 book->everyone = (information*)malloc(book->num*sizeof(information));
 for (int i = 0; i < book->num; i++) {
  strcpy(book->everyone[i].name," ");
  strcpy(book->everyone[i].sex, " ");
  strcpy(book->everyone[i].number, " ");
  strcpy(book->everyone[i].address, " ");
  book->everyone[i].age = 0;
 }
}

3、增加联系人修改

void AddInformation(mindan* book) {
 if (book->size >= MAX_LEN) {
  book->num += 20;
  information* newper = (information*)malloc(book->num*sizeof(information));
  memcpy(newper, book->everyone, book->size*sizeof(information));
  free(book->everyone);
 }
 printf("请输入联系人姓名:\n");
 information* p_num =&( book->everyone[book->size]);
 scanf("%s", p_num->name);
 printf("请输入联系人性别:\n");
 scanf("%s", p_num->sex);
 printf("请输入联系人地址:\n");
 scanf("%s", p_num->address);
 printf("请输入联系人号码:\n");
 scanf("%s", p_num->number);
 printf("请输入联系人年龄:\n");
 scanf("%d",&p_num->age);
 printf("添加联系人成功!\n");
 book->size++;
 }
发布了40 篇原创文章 · 获赞 2 · 访问量 601

猜你喜欢

转载自blog.csdn.net/scacacac/article/details/104990272