c語言數(shù)組怎么用 C語言如何定義一組長度不定的數(shù)組?
C語言如何定義一組長度不定的數(shù)組?用C語言實現(xiàn)變長數(shù)組有幾種方法:1。柔性陣列2。動態(tài)分配內(nèi)存1。使用flexible array就是在結(jié)構(gòu)體中定義一個長度為0的數(shù)組:struct mydata{in
C語言如何定義一組長度不定的數(shù)組?
用C語言實現(xiàn)變長數(shù)組有幾種方法:1。柔性陣列2。動態(tài)分配內(nèi)存
1。使用flexible array就是在結(jié)構(gòu)體中定義一個長度為0的數(shù)組:
struct mydata{int nlen char Data[0]}當(dāng)數(shù)組的長度為0時,表示數(shù)組的長度只有一個數(shù)組名。使用時,可以直接分配指定長度的空間,使用后釋放。
Int nlen=100mydata*mydata=(mydata*)malloc(sizeof(mydata)100)
然后在此陣列上執(zhí)行其他操作。之后,釋放分配的空間。
2. 使用動態(tài)分配類似于1,只是需要定義一個指針來保存所分配內(nèi)存空間的實際地址。分配后,指針可以用作數(shù)組。您可以更改要分配的數(shù)量。操作完成后,還需要釋放它。
//Operate on P
free(P)
如果更改的長度來自其他計算公式或函數(shù),也可以定義其他函數(shù)。函數(shù)的返回值可以是結(jié)構(gòu)或指針,參數(shù)是更改的長度。
Char*P P P=(Char*)malloc(len)return P
}
調(diào)用:Char*a=Test(獲取長度的其他函數(shù))