#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "string.h"
typedef struct
{
char *alisname;
int age;
int id;
}Teacher;
void Free_Teacher_Mem1(Teacher * p, int num)
{
int i = 0;
if (p == NULL)
return;
for (i = 0; i < num; i++)
{
if (p[i].alisname != NULL)
{
free(p[i].alisname);
p[i].alisname = NULL;
}
}
free(p);
p = NULL;
}
int Create_Teacher(Teacher **p, int num)
{
Teacher *temp_Teacher;
int ret_flag = 0;
int i = 0;
temp_Teacher = (Teacher *)malloc(sizeof(Teacher)*num);
if (temp_Teacher == NULL)
{
ret_flag = - 1;
goto END;
}
for (i = 0; i < num; i++)
{
temp_Teacher[i].alisname = (char *)malloc(sizeof(char)* 60);
if (temp_Teacher[i].alisname == NULL)
{
ret_flag = -1;
goto END;
}
}
END:
if (ret_flag == -1)
{
Free_Teacher_Mem1(temp_Teacher, num);
}
else
{
*p = temp_Teacher;
}
}
void Print_Teacher(Teacher *p,int num)
{
int i = 0;
for (i = 0; i < num; i++)
{
printf("%s\n", p[i].alisname);
}
}
void main()
{
int num = 2;
Teacher *p =NULL;
int i = 0;
Create_Teacher(&p, num);
for (i = 0; i < num; i++)
{
printf("请输入姓名:\n");
scanf("%s", p[i].alisname);
}
Print_Teacher(p, num);
Free_Teacher_Mem1(p, num);
}