c輸入不定長(zhǎng)度的數(shù)組 如何在C中動(dòng)態(tài)定義數(shù)組的長(zhǎng)度?
如何在C中動(dòng)態(tài)定義數(shù)組的長(zhǎng)度?對(duì)于動(dòng)態(tài)分配的陣列,您可以自定義陣列的長(zhǎng)度。示例如下:##include<stdio。H>##包含字符串(&L)。H>##包含<stdlib。H>in
如何在C中動(dòng)態(tài)定義數(shù)組的長(zhǎng)度?
對(duì)于動(dòng)態(tài)分配的陣列,您可以自定義陣列的長(zhǎng)度。示例如下:
##include<stdio。H>
##包含字符串(&L)。H>
##包含<stdlib。H>
int main()
{
printf(“輸入要分配的內(nèi)存大小:”)
int size
scanf(%d”,& size)//輸入自定義數(shù)組的長(zhǎng)度
int*PSTART=(int*)malloc(sizeof(int)*size)
if(PSTART==0){
printf(“無(wú)法分配內(nèi)存n”)
返回0]}
memset(PSTART,0x00,sizeof(int)*size)
int INX
表示(INX=0 INX!=size INX)PSTART[INX]=INX
對(duì)于(INX=0 INX!=size INX)printf(%dt,PSTART[INX])
printf( “)
返回0]}
C語(yǔ)言定義未知長(zhǎng)度的數(shù)組?
c語(yǔ)言中數(shù)組的大小可以改變嗎?
MSDN中的數(shù)組聲明如下所述:保持?jǐn)?shù)組最大大小所需的整數(shù)類型是size 的大小。在頭文件STDDEF.H中定義,size 是一個(gè)無(wú)符號(hào)整數(shù),范圍為0x00000000到0x7cffffff。也就是說(shuō),只要硬件條件允許,數(shù)組的大小可以是0x7cffff(2G字節(jié))。數(shù)組占用的空間為:count*sizeof(type)。Count是數(shù)組元素的數(shù)目,sizeof(type)是元素占用的字節(jié)數(shù)。如果定義的數(shù)組空間超過(guò)2G,VC編譯器將報(bào)告一個(gè)錯(cuò)誤:致命錯(cuò)誤c1126:“2G”:自動(dòng)分配超過(guò)。。。因此,當(dāng)實(shí)際編程確實(shí)需要使用更大的數(shù)組時(shí),應(yīng)該使用動(dòng)態(tài)定義方法(newmalloc等)。
c語(yǔ)言中不知道數(shù)組長(zhǎng)度的情況下,怎么申請(qǐng)空間?
這是個(gè)好問(wèn)題。目前,我能想到的是使用鏈表結(jié)構(gòu)而不是數(shù)組,或者更準(zhǔn)確地說(shuō),使用alloc函數(shù)來(lái)構(gòu)建鏈表。
與數(shù)組不同的是,數(shù)組的元素在內(nèi)存中是一個(gè)連續(xù)的區(qū)域,而鏈表的節(jié)點(diǎn)在內(nèi)存中是一個(gè)離散的區(qū)域,因此鏈表的運(yùn)算效率比數(shù)組要低一些。
如果您有其他方法,可以留言一起討論!