1. 程式人生 > >釋放結構體數組裏面的指針

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

++ i++ color 結構體數組 col 分配內存 結構體 div 成員指針

 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 }

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