c語言 結構體巢狀二級指標

2021-10-06 06:37:46 字數 1634 閱讀 4636

如果乙個結構體內巢狀二級指標了二級指標,這裡的students為二級指標,也對應了一對多的關係,乙個老師,多個學生。

struct teacher

;

我們知道,二級指標指向一級指標的位址,**指標指向二級指標的位址

void

test()

//列印老師及其學生資訊

printteachers

(teachers)

;//釋放記憶體

freespace

(teachers)

; teachers =

null

;}

int

allocatespace

(struct teacher *

**temp)

struct teacher *

*ts =

malloc

(sizeof

(struct teacher *)*

3);for

(int i =

0; i <3;

++i)

}*temp = ts;

return0;

}

void

printteachers

(struct teacher *

*teachers)

for(

int i =

0; i <3;

++i)

}}

void

freespace

(struct teacher *

*teachers)

for(

int i =

0; i <3;

++i)

if(teachers[i]

->name !=

null

)for

(int j =

0; j <4;

++j)

}free

(teachers[i]

->students)

; teachers[i]

->students =

null

;free

(teachers[i]);

teachers[i]

=null;}

free

(teachers)

; teachers =

null

;}

teacher_1

teacher_1_stu_1

teacher_1_stu_2

teacher_1_stu_3

teacher_1_stu_4

teacher_2

teacher_2_stu_1

teacher_2_stu_2

teacher_2_stu_3

teacher_2_stu_4

teacher_3

teacher_3_stu_1

teacher_3_stu_2

teacher_3_stu_3

teacher_3_stu_4

c語言 結構體巢狀一級指標

這裡用支了二級指標 void test 執行 name name 1 age 100name name 2 age 101name name 3 age 102name name 1的記憶體被釋放 name name 2的記憶體被釋放 name name 3的記憶體被釋放 分配記憶體 struct ...

C語言二級指標

指標是c語言的靈魂,我想對於一級指標大家應該都很熟悉,也經常用到 比如說對於字串的處理,函式引數的 值,結果傳遞 等,對於二級指標或者多級指標,我想理解起來也是比較容易的,比如二級指標就是指向指標的指標.n級指標就是.但是可能大家比較不容易理解的是,二級指標或者多級指標用在 呢?怎麼使用呢?有沒有必...

結構體巢狀二級指標和一級指標 釋放時出現的問題

發現問題所在,應釋放main函式p指向的記憶體,而不是freeteacher函式裡p指向的記憶體 define crt secure no warnings include include include include 4.重寫結構體巢狀一級指標老師和二級指標學生的 結構體型別,每個導師有三個學生...