關(guān)于在 C 語言中創(chuàng)建動(dòng)態(tài)數(shù)組的問題,可以使用 C 語言提供的庫函數(shù):malloc( ) 來創(chuàng)建動(dòng)態(tài)數(shù)組。即可以使用如下代碼進(jìn)行實(shí)現(xiàn):
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:假山制作等成都網(wǎng)站設(shè)計(jì)、營銷型網(wǎng)站建設(shè)解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
#include stdlib.h /* 動(dòng)態(tài)分配內(nèi)存的庫函數(shù) malloc( )、以及后面用到的 free( ) 釋放內(nèi)存庫函數(shù)在此頭文件中有函數(shù)原型定義,故必須包含該頭文件 */
#include stdio.h
void main( )
{
int num, * p ;
printf("Please input a number :\n" ) ;
scanf("%d", num) ;
p = (int *)malloc(num) * sizeof(int) ; /* 根據(jù)前面從鍵盤上輸入的數(shù)字 num,動(dòng)態(tài)分配一個(gè)整型動(dòng)態(tài)數(shù)組 p */
......
......
free( p ) ; /* 應(yīng)用程序結(jié)束前務(wù)必釋放內(nèi)存 */
}
至于說中間的程序結(jié)構(gòu)的架構(gòu),就需要靠自己上機(jī)編寫、并親自調(diào)試程序了。因?yàn)槿魏我粋€(gè)程序的最終正確運(yùn)行結(jié)果(可以說是100%的程序),都是必須在編程環(huán)境下面調(diào)試出來的,而不是在紙上寫出來就能夠保證通過的。
在紙上寫出來的部分源代碼,只能夠是給你提供一個(gè)大致的編程思路供參考。
C語言定義動(dòng)態(tài)數(shù)組需要用到動(dòng)態(tài)內(nèi)存分配函數(shù),參考代碼如下:
#includestdio.h
#includestdlib.h
int
main()
{
int
*a=NULL,n,i;
scanf("%d",n);
a=(int
*)malloc(n*sizeof(int));
for(i=0;in;++i)
a[i]=i;
for(i=0;
in;
++i)
printf("%d
",a[i]);
free(a);
a=NULL;
return
0;
}
c語言動(dòng)態(tài)數(shù)組擴(kuò)充空間,主要是利用動(dòng)態(tài)存儲(chǔ)分配庫函數(shù)來實(shí)現(xiàn)的,常用的有malloc函數(shù)和calloc函數(shù)。
malloc()是C語言中動(dòng)態(tài)存儲(chǔ)管理的一組標(biāo)準(zhǔn)庫函數(shù)之一。其作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一個(gè)長(zhǎng)度為size的連續(xù)空間。其參數(shù)是一個(gè)無符號(hào)整形數(shù),返回值是一個(gè)指向所分配的連續(xù)存儲(chǔ)域的起始地址的指針。
例如:
char *x;
x = (char *)malloc(10); //x就指向了包含10個(gè)字符單元的存儲(chǔ)空間。
擴(kuò)展資料:
函數(shù)定義
其函數(shù)原型為void *malloc(unsigned int size);其作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一個(gè)長(zhǎng)度為size的連續(xù)空間。此函數(shù)的返回值是分配區(qū)域的起始地址,或者說,此函數(shù)是一個(gè)指針型函數(shù),返回的指針指向該分配域的開頭位置。
如果分配成功則返回指向被分配內(nèi)存的指針(此存儲(chǔ)區(qū)中的初始值不確定),否則返回空指針NULL。當(dāng)內(nèi)存不再使用時(shí),應(yīng)使用free()函數(shù)將內(nèi)存塊釋放。函數(shù)返回的指針一定要適當(dāng)對(duì)齊,使其可以用于任何數(shù)據(jù)對(duì)象。
參考資料來源:百度百科-malloc函數(shù)
#include stdio.h
#include stdlib.h
int main()
{
int num,*p=0,i;
printf("輸入數(shù)組元素個(gè)數(shù):");
/*輸入數(shù)組元素個(gè)數(shù),保存到變量num中*/
scanf("%d",num);
/*動(dòng)態(tài)分配數(shù)組存儲(chǔ)空間*/
p = (int *)malloc(sizeof(int)*num);
/*輸入數(shù)據(jù)*/
for(i=0;inum;i++)
{
scanf("%d",p[i]);
}
/*輸出數(shù)據(jù)*/
for(i=0;inum;i++)
{
printf("%d ",p[i]);
}
/*刪除動(dòng)態(tài)創(chuàng)建的數(shù)組*/
free(p);
return 0;
}