一、簡介
變長陣列又成c99 柔性陣列,是非標準的拓展
形如:
struct test ;
或者 struct ;
在實際的物理上是沒有占用位元組的。目的是為了方便的動態增加記憶體長度,比如你要儲存乙個字串,事先不知道字串長度,可以採用此類方法動態分配。對於該變數的型別 可以隨意,比如int、long 等。
二、各平台的比較
**如下:
struct test;
int main()
windows輸出結果為:
linux 輸入的結果為: 0,0
總結:可變變數不佔位元組。
注意點:
1. 在使用可變變數時候 要記得malloc( + 特定需要的長度(如: strlen("123")))
2. windows 在進行malloc 時候如果不增加長度。進行 free 時候就會報錯。提示broken 塊值。linux不會報錯
3. 形如: 大小為 4 ;p 仍然為0
struct test;
4. 可變陣列只能放在結構體末尾
5. 僅在 結構體中、extern、形參才能用【】。其他的要指明大小
6. char p[1] 值大小為 1.
C語言 可變陣列 Mooc筆記
array.h ifndef array h define array h typedef struct array array array creat int init size 建立陣列 void array free array a 釋放陣列空間 intarray size array a 輸...
C STL deque可變陣列
deque資料應該很多,這裡不多所了,直接一點上程式吧!include include include include 用於distance deque模板,deque迭代器 using namespace std stl deque 是乙個動態陣列,與vector類似 可在開頭與末尾插入 刪除資料...
結構可變陣列
開拓空間 array array create int init size 該段 用malloc來為結構體裡面的陣列指標分配乙個我們需要的空間,然後把位址分配給結構體裡面的array 為array結構體分配乙個空間並返回乙個array型別 用於主函式裡面array結構體型別直接複製 恢復空間,清空記...