色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

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

阮建安2年前62瀏覽0評論

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

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

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

intnLen=100;MyData*myData=(MyData*)malloc(sizeof(MyData)+100);

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

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

char*p;

p=(char*)malloc(100);

//對p進行操作

free(p);

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

char*TEST(intlen){

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

}

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