结构体内嵌一级指针
来源:互联网 发布:杭州seo外包服务 编辑:程序博客网 时间:2024/05/02 20:04
例程如下:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>#include <stdlib.h>typedef struct Teacher{ char name[64]; char *alisname; int age;}Teacher;int creatTeacher(Teacher **p, int num){ int i = 0; Teacher *tmp = NULL; tmp = (Teacher *)malloc(sizeof(Teacher)*num); if (tmp == NULL) { return -1; } for (i = 0; i < num; i++) { tmp[i].alisname = (char *)malloc(60); } *p = tmp; return 0;}void printTeacher(Teacher *Array, int num){ int i = 0; for (i = 0; i < num; i++) { printf("name:%s\n", Array[i].name); printf("alisname:%s\n", Array[i].alisname); printf("age:%d\n\n", Array[i].age); }}void sortTeacher(Teacher *Array, int num){ int i = 0, j = 0; 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 FreeTeacher(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); } } free(p); //分配内存时分配了两次,释放时也要释放两次}void main(){ int i = 0; int ret = 0; int num = 3; Teacher *Array = NULL; ret = creatTeacher(&Array, num); if (ret != 0) { return; } for (i = 0; i < num; i++) { printf("please enter name:\n"); scanf("%s", Array[i].name); //name就是一个数组地址 所以这里不用加&号取地址 printf("please enter alisname:\n"); scanf("%s", Array[i].alisname); //alisname就是一个指针所储存的地址 所以这里不用加&号取地址 printf("please enter age:\n"); scanf("%d", &(Array[i].age)); } printf("排序之前:\n"); printTeacher(Array, num); sortTeacher(Array, num); printf("排序之后:\n"); printTeacher(Array, num); FreeTeacher(Array, num); system("pause");}
0 0
- 结构体内嵌一级指针
- DeviceIoControl和结构体内嵌指针
- C语言结构体内嵌函数指针
- 结构体内的指针
- 结构体包含一级指针
- 结构体嵌套一级指针
- <复习>指针结构体内存分配
- 结构体内存分布,指针,指针的指针。
- 结构体中套用一级指针
- 结构体内嵌联合体的内存占用
- C 结构体嵌套一级指针 二级指针 动态分配内存
- C 结构体嵌套一级指针 二级指针 动态分配内存
- 结构体及其应用:结构体的深度拷贝,结构体内含指针
- 一级指针
- 一级指针
- 感受下函数指针(指针函数)和结构体内部函数
- 漫步IOS--指针细节3:指针定义、TypeDef别名声明、结构体内存存储
- 指针组合(如指针数组)的区分及其结构体内存大小的计算
- android fragment(2)
- 自定义view(视图类)
- 布尔(bool)全排列
- linux下vi命令大全
- hpu1695 一道签到题
- 结构体内嵌一级指针
- 【ASP.NET】——统计在线人数、历史访问人数
- [Java]如何避免啰嗦的代码风格
- 机房收费系统(一)——MSFlexGrid控件
- maven pom.xml配置文件出错原因及解决办法
- Java学习笔记------BufferedLine类的readLine()方法 使用须知
- HDU A Mathematical Curiosity
- 堆排序(初学者)
- 【物理白痴进化论,欢迎吐槽】键盘按键原理及应用