首页 > 其他 > 详细

结构体中含有一级指针

时间:2016-12-31 19:57:46      阅读:211      评论:0      收藏:0      [点我收藏+]

头文件:

#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);
    }


}

 

结构体中含有一级指针

原文:http://www.cnblogs.com/zhouquan-1992-04-06/p/6240045.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!