詳解C語言之柔性數組

定義

可調整大小的數組

以0大小數組或無大小數組定義在結構體的最後一個元素中

特點

1.結構體中的柔性數組前必須包含至少一個其他成員。

2.sizeof返回的這種結構體大小不包含柔性數組的內存。

3.包含柔性數組成員的結構用malloc()函數進行內存的動態分配,並且分配的大小應該大於結構的大小,以適應柔性數組的預期大小。

具體使用例

 實現可調整大小的數組還可用一般的方法:

但是相比之下柔性數組有如下優點:

1.方便內存釋放,如果分配兩次內存,則需要釋放兩次。如果我們的代碼是給別人的一個函數中,並返回瞭整個結構體,用戶可以調用函數free釋放結構體,但並不知道結構體內的成員也需要free釋放。

2.有利於提高訪問速度,連續的內存分配有益於提高訪問速度,也有益於減少內存碎片。

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: