釋放結構體數組里面的指針


 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM