结构体成员内部含有一级指针和二级指针的情况
来源:互联网 发布:sql server error 26 编辑:程序博客网 时间:2024/05/02 00:33
结构体成员内部含有一级指针和二级指针的情况
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>#include<stdlib.h>
#include<string.h>
typedef struct _Teacher
{
char name[64];
char *title;
char **pStuArray;
int age;
}Teacher;
void copy(Teacher *to, Teacher *from)
{
*to = *from;
}
void que(Teacher *array, int num)//冒泡法排序
{
int i, j;
Teacher tmp;
for (i = 0; i < num; i++)
{
for (j = i + 1; j < num; j++)
{
if (array[i].age>array[j].age)
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
}
void Freearray(Teacher *array, int num)//释放内存空间
{
int i, j;
for (i = 0; i < num; i++)
{
//释放pStuArray的内存
char **tmp = array[i].pStuArray;
if (tmp == NULL)
{
continue;
}
for (j = 0; j < num; j++)
{
if (tmp[j] != NULL)
free(tmp[j]);
}
free(tmp);
//释放title的内存
for (i = 0; i < num; i++)
{
if (array[i].title != NULL)
{
free(array[i].title);
array[i].title = NULL;
}
}
}
free(array);//释放结构体的内存空间
}
//创建内存空间
Teacher* creatarray(int num)
{
int i, j;
int ret = 0;
Teacher* array = NULL;
array= (Teacher *)malloc(num*sizeof(Teacher *));
if (array == NULL)
{
return;
}
for (i = 0; i < num; i++)
{
array[i].title = (char *)malloc(100);
char **tmp = (char **)malloc(num*sizeof(char *));
for (j = 0; j < num; j++)
{
tmp[j] = (char *)malloc(120);
}
array[i].pStuArray = tmp;
}
return array;
}
int main()
{
int i,j;
int ret = 0;
//Teacher array[3];
Teacher *p = NULL;
p=creatarray(3);
if (p==NULL)
{
return ;
}
//printf("input ages\n");
for (i = 0; i<3; i++)
{
printf("请输入第%d个老师的成绩",i+1);
scanf("%d",&p[i].age);
printf("请输入第%d个老师的姓名", i + 1);
scanf("%s",p[i].name);
printf("请输入第%d个老师的职称", i + 1);
scanf("%s", p[i].title);
for (j = 0; j < 3; j++)
{
printf("请输入第%d个学生的名字", j + 1);
scanf("%s", p[i].pStuArray[j]);
}
}
que(p,3);
for (i = 0; i < 3; i++)
{
printf("%d", p[i].age);
printf("%s\n", p[i].name);
}
//释放内存空间
Freearray(p,3);
system("pause");
return 0;
}
0 0
- 结构体成员内部含有一级指针和二级指针的情况
- C语言:结构体中一级指针和二级指针的创建与释放示例
- C语言:结构体中一级指针和二级指针的创建与释放示例
- 一级指针和二级指针
- 一级指针和二级指针
- C 结构体嵌套一级指针 二级指针 动态分配内存
- C 结构体嵌套一级指针 二级指针 动态分配内存
- 【C语言提高40】结构体套一级指针和二级指针
- C语言之结构体嵌套一级指针和二级指针
- 含有指针成员的结构体使用总结
- 关于一级指针和二级指针的简单见解
- 一级指针和二级指针的函数调用
- 【总结归纳】一级指针和二级指针的使用
- 有关一级指针和二级指针的归纳总结
- 链表的一级指针和二级指针
- C++ 中的二级指针 和 一级指针
- C++ 一级指针和二级指针
- 关于一级指针和二级指针
- OpenGL 在Win7(32)上配置开发环境流程及注意问题
- HDU-1856 More is better
- muduo网络库源码学习————互斥锁
- 可滑动关闭的对话框(二)
- J2SE配置问题—;expected错误总结
- 结构体成员内部含有一级指针和二级指针的情况
- UI22_动画
- 【网络流之最大流】POJ1273-Drainage Ditche【模板题】
- CentOS系统下的Hadoop集群(第8期)_HDFS初探之旅
- POJ 2187 Beauty Contest(凸包 + 旋转卡壳)
- iOS学习之CoreData多表关联使用
- MyBatis中解决字段名与实体类属性名不相同的冲突
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
- 如何使用Hibernate实现一个学生注册功能