#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
结构体套二级指针
最新推荐文章于 2024-07-20 10:50:19 发布
本文深入探讨了C语言中结构体与二级指针的使用,包括如何通过二级指针来修改结构体成员,以及在内存管理和函数参数传递中的应用。通过对实例的分析,阐述了二级指针在处理复杂数据结构时的关键作用。
摘要由CSDN通过智能技术生成