c語言提高 可變陣列

2021-08-20 23:18:05 字數 747 閱讀 4807

一、簡介

變長陣列又成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結構體型別直接複製 恢復空間,清空記...