c語言定義數(shù)組時不規(guī)定長度C語言定義未知長度的數(shù)組?-創(chuàng)新互聯(lián)

C語言定義未知長度的數(shù)組?c語言如何定義未知個數(shù)的數(shù)組?C語言在數(shù)組數(shù)目未知的情況下,根據(jù)不同的應(yīng)用有三種方式。c語言定義數(shù)組時不規(guī)定長度 C語
言定義未知長度的數(shù)組?

1.數(shù)組元素的總數(shù)未知,但要存儲的內(nèi)容是已知的。事實上,這是一個已知的數(shù)字偽裝,但程序員不計算總數(shù),把工作留給系統(tǒng)。在這種情況下,數(shù)組的數(shù)量可以留空,并且可以顯式初始化數(shù)組以進(jìn)行聲明。例如,chars[]=“thisisateststring”初始化這樣的數(shù)組s,其空格數(shù)由初始化字符串隱式確定。

潮陽網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,潮陽網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為潮陽成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的潮陽做網(wǎng)站的公司定做!

2.數(shù)組元素的總數(shù)未知,但大大小已知。例如,如果您不知道數(shù)組的總數(shù),但確定它不會超過100,則可以為存儲和調(diào)用定義一個包含100個元素的數(shù)組。

3.動態(tài)分配數(shù)組。通過malloc函數(shù),可以動態(tài)分配數(shù)組,然后記錄當(dāng)前分配的數(shù)組元素個數(shù),并使用數(shù)組。當(dāng)數(shù)組空間不足時,可以使用realloc函數(shù)重新分配空間,擴展數(shù)組元素的個數(shù)。例如,intsize=100,int*P=(int*)malloc(sizeof(int)*100)//初始化并分配100個元素空間。使用size保存當(dāng)前數(shù)組大小。P=realloc(sizeof(int)*(size100),P)//當(dāng)空間不足時,添加100個元素。Size=100//需要注意的是,Size的大小必須同步保持,否則會出現(xiàn)錯誤。

C如何定義一個未知長度的數(shù)組?

如果你不知道數(shù)組的長度,那么這樣的數(shù)組就沒有實際意義了,所以沒有必要去定義它,當(dāng)然也沒有辦法去定義它。如果您總是想知道長度,那么在知道長度之后,使用動態(tài)內(nèi)存分配函數(shù)malloc()為它分配內(nèi)存。當(dāng)數(shù)組的長度發(fā)生變化時,您可以為它重新分配內(nèi)存,復(fù)制數(shù)組,并使用鏈表返回分配給系統(tǒng)的內(nèi)存也可以解決您的問題。

c語言如何定義未知個數(shù)的數(shù)組?

使用malloc函數(shù)。。。。例如,您需要申請一個int的未知數(shù)字?jǐn)?shù)組。您可以使用以下程序#include<stdio。H>#包括<stdlib。H>main(){int*pintnprintf(“請輸入數(shù)字n:\n”)scanf(\%d“,&n)P=(int*)malloc(n*sizeof(int))//然后使用*P作為數(shù)組指針。。~~~}

一般實踐(t是一種類型,如int):

C99可以使用可變長度數(shù)組(VLA)和malloc()/free()來分配一個生命周期可由自身控制的數(shù)組。例如,在malloc()之后,函數(shù)將結(jié)果返回給調(diào)用者。VLA的生命周期是自動的,只在范圍內(nèi)有效。

分享標(biāo)題:c語言定義數(shù)組時不規(guī)定長度C語言定義未知長度的數(shù)組?-創(chuàng)新互聯(lián)
分享地址:http://www.muchs.cn/article10/dssedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、商城網(wǎng)站、定制網(wǎng)站、Google、自適應(yīng)網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站