C語言變長數組講解

https://blog.csdn.net/houzijushi/article/details/80245894

1、什麼是變長數組?

變長數組既數組大小待定的數組, C語言中結構體的最後一個元素可以是大小未知的數組,也就是所謂的0長度,所以我們可以用結構體來創建變長數組。

2、變長數組有什麼用途 ?

它的主要用途是爲了滿足需要變長度的結構體,爲了解決使用數組時內存的冗餘和數組的越界問題。

3、用法 :在一個結構體的最後 ,申明一個長度爲空的數組,就可以使得這個結構體是可變長的。對於編譯器來說,此時長度爲0的數組並不佔用空間,因爲數組名

本身不佔空間,它只是一個偏移量, 數組名這個符號本身代 表了一個不可修改的地址常量 (注意:數組名永遠都不會是指針! ),但對於這個數組的大小,我們

可以進行動態分配,對於編譯器而言,數組名僅僅是一個符號,它不會佔用任何空間,它在結構體中,只是代表了一個偏移量,代表一個不可修改的地址常量!

對於變長數組的這個特點,很容易構造出變成結構體,如緩衝區,數據包等等

這樣的變長數組常用於網絡通信中構造不定長數據包,不會浪費空間浪費網絡流量,比如我要發送1024字節的數據,如果用定長包,假設定長包的長度爲2048,就

會浪費1024個字節的空間,也會造成不必要的流量浪費。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章