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