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