#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Teacher
{
char name[64];
int age;
char** stuName;//每个老师带n个学生(第一维),每个学生的名字(字符串,第二维)
}Teacher;
int createTArr(Teacher** tArr,int num,int stu_num){
Teacher* p =NULL;//辅助指针
p = (Teacher*)malloc(sizeof(Teacher)*num);
for(int i=0;i<num;i++){
p[i].stuName = (char**)malloc(sizeof(char*)*stu_num);
for(int j=0;j<stu_num;j++){
p[i].stuName[j] = (char*)malloc(64);
}
}
*tArr = p;//挂上
return 0;
}
int freeTArr(Teacher** tArr,int num,int stu_num){
Teacher* p = *tArr;
//先释放每个学生的名字(字符串)
for(int i=0;i<num;i++){
for(int j=0;j<stu_num;j++){
if(p[i].stuName[j]!=NULL){//释放一级指针char*
free(p[i].stuName[j]);
p[i].stuName[j] = NULL;
}
}
if (p[i].stuName!=NULL)//释放二级指针char**
{
free(p[i].stuName);
p[i].stuName = NULL;
}
}
if(*tArr!=NULL){//释放一级指针Teacher*
free(*tArr);
*tArr = NULL;
}
return 0;
}