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