结构体做函数参数2

 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 
 6 typedef struct Teacher
 7 {
 8     char name[64];
 9     int age;
10     int id;
11 }Teacher;
12 
13 void printTeacher(Teacher *array, int num)
14 {
15     int i = 0;
16     //打印老师年龄
17     for (i = 0; i < num; i++)
18     {
19         //printf("age:%d
", array[i].age);
20         printf("age:%d
", (*(array + i) ).age);
21         //(array++)->age;
22     }
23 }//(*(array+i)).age
24 
25 void sortTeacher(Teacher *array,int num)
26 {
27     int i, j;
28     Teacher tmp;
29     for (i = 0; i < num;i++)
30     {
31         for (j = i; j < num;j++)
32         {
33             if (array[i].age<array[j].age)
34             {
35                 tmp = array[i];
36                 array[i] = array[j];
37                 array[j] = tmp;
38             }
39         }
40     }
41 }
42 
43 
44 Teacher * createTeacher(int num)
45 {
46     Teacher * tmp = NULL;
47     tmp = (Teacher*)malloc(sizeof(Teacher)*num);    //    Teacher Array[3]
48     if (tmp == NULL)
49     {
50         return NULL;
51     }
52 }
53 
54 void FreeTeacher(Teacher *p)
55 {
56     if (p!=NULL)
57     {
58         free(p);
59     }
60 }
61 
62 int main()
63 {
64     int i = 0;
65     int num = 3;
66     //Teacher Array[3];    //在stack分配内存
67 
68     Teacher *pArray = NULL;
69     pArray = createTeacher(num);
70 
71     for (i = 0; i < num; i++)
72     {
73         printf("
please enter age:");
74         scanf("%d", &pArray[i].age);
75     }
76     printTeacher(pArray, num);
77     sortTeacher(pArray, num);
78     printf("排序后:
");
79     printTeacher(pArray, num);
80     /*
81         printTeacher(Array, num);
82         sortTeacher(Array, num);
83         printf("排序后:
");
84         printTeacher(Array, num);*/
85     FreeTeacher(pArray);
86     system("pause");
87     return 0;
88 }
原文地址:https://www.cnblogs.com/linst/p/4868176.html