欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

C語言如何定義一組長度不定的數組

錢瀠龍2年前14瀏覽0評論

C語言如何定義一組長度不定的數組?

C語言中實現變長數組有幾種方式:1.柔性數組 2.動態分配內存

1.使用柔性數組的話就是在結構體中定義一個長度為0的數組:

struct MyData { int nLen; char data[0];};數組的長度為0就表明數組占用的長度只有一個數組名,當要使用的時候就可以直接分配制定長度的空間,使用完之后釋放即可。

int nLen = 100;MyData *myData = (MyData*)malloc(sizeof(MyData) + 100);

再對這個數組進行其他操作,操作完了之后free掉分配的空間。

2.使用動態分配的方式,和1差不多,只不過要先定義一個指針用來保存分配好的內存空間的其實地址,分配好之后,這個指針就可以當作數組來使用,你要分配多少都是可以變化的,操作完成之后同樣要進行釋放。

char *p;

p=(char *)malloc(100);

//對p進行操作

free(p);

如果你的變化的長度是來自其他計算公式或者函數也可以,可以另外定義一個函數,函數的返回值可以是結構體或者指針,而參數就是這個變化的長度。

char* TEST(int len){

char *p; p=(char *)malloc(len); return p;

}

調用:char *a = TEST(獲取長度的其他函數);

int數組長度 java,C語言如何定義一組長度不定的數組