释放结构体数组里面的指针

 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 }

 

posted @ 2019-03-22 17:38  谁的小流浪  阅读(1962)  评论(0编辑  收藏  举报