结构体中含有一级指针

头文件:

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

全局变量:

const int t_length = 3;

typedef struct Teacher{
    int id;
    char name[64];
    char *alis;
    int age;
}Teacher;

 

函数原型:

void createTeahcer(Teacher **ppt,int num); //给结构数组分配内存

void freeTeacher(Teacher *pt, int num); //释放内存

void sortTeacher(Teacher *pt, int num); //排序数组

void printTeacher(Teacher *pt, int num); //遍历数组

 

实现方法:

void createTeahcer(Teacher **ppt,int num){

    int i;

    Teacher *temp;

    temp = (Teacher *)malloc(sizeof(Teacher) * num);

    for(i = 0; i < num; ++i){
        temp[i].alis = (char *)malloc(sizeof(char) * 64);
    }

    *ppt = temp;

}

void freeTeacher(Teacher *pt, int num){
    
    int i;

    if(pt != NULL){
        
        for(i = 0; i < num; ++i){

            if(pt[i].alis != NULL){
                free(pt[i].alis);
            }

        }

        free(pt);
    }

    
}

void sortTeacher(Teacher *pt, int num){

    int i, j;

    Teacher temp;

    for(i = 0; i < num; ++i){

        for(j = i + 1; j < num; ++j){
        
            if(pt[j].age < pt[i].age){
                
                temp = pt[j];
                pt[j] = pt[i];
                pt[i] = temp;

            }
        }

    }

}

void printTeacher(Teacher *pt, int num){

    int i;

    printf("\n");
    for(i = 0; i < num; ++i){
        printf("学号:%d 姓名:%s 别名:%s 年龄:%d\n", pt[i].id, pt[i].name, pt[i].alis, pt[i].age);
    }


}

 

转载于:https://www.cnblogs.com/zhouquan-1992-04-06/p/6240045.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值