1 //定义如下结构体
2 typedef struct student
3 {
4 int id;
5 char* name;
6 } student_t;
7
8 int main(){
9
10 //有四种定义形式
11
12 //一、结构体变量
13 student_t xiaoming; //不需要为结构体分配内存,但是需要对name分配内存
14 xiaoming.name =(char*)malloc(10);
15 free(xiaoming.name); //释放成员指针
16
17 //二、结构体指针
18 student_t *xiaoming=NULL;
19 xiaoming = (student_t*)malloc(sizeof(student_t));
20 xiaoming.name =(char*)malloc(10);
21 free(xiaoming.name); //释放成员指针
22 free(xiaoming); //释放指针
23
24 //三、结构体数组
25 student_t xiaoming[3];
26 for( i = 0; i<3 ; i++ )
27 {
28 xiaoming[i].name = (char*)malloc(10); //初始化
29 }
30 for( i = 0; i<3 ; i++ )
31 {
32 free(xiaoming[i].name); //释放成员指针
33 }
34
35 //四、结构体数组(第三种的另一种写法)
36 student_t *xiaoming=NULL;
37 xiaoming = (student_t*)malloc(sizeof(student_t)*3);
38 for( i = 0; i<3 ; i++ )
39 {
40 xiaoming[i].name = (char*)malloc(10); //初始化
41 }
42 for( i = 0; i<3 ; i++ )
43 {
44 free(xiaoming[i].name); //释放成员指针
45 }
46 free(xiaoming); //释放数组
47
48 return 0;
49 }