詳解C語言之柔性數組
定義
可調整大小的數組
以0大小數組或無大小數組定義在結構體的最后一個元素中
特點
1.結構體中的柔性數組前必須包含至少一個其他成員。
2.sizeof返回的這種結構體大小不包含柔性數組的內存。
3.包含柔性數組成員的結構用malloc()函數進行內存的動態(tài)分配,并且分配的大小應該大于結構的大小,以適應柔性數組的預期大小。
具體使用例
實現(xiàn)可調整大小的數組還可用一般的方法:
但是相比之下柔性數組有如下優(yōu)點:
1.方便內存釋放,如果分配兩次內存,則需要釋放兩次。如果我們的代碼是給別人的一個函數中,并返回了整個結構體,用戶可以調用函數free釋放結構體,但并不知道結構體內的成員也需要free釋放。
2.有利于提高訪問速度,連續(xù)的內存分配有益于提高訪問速度,也有益于減少內存碎片。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!