第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言中數(shù)組長度不能用變量定義嗎?

C語言中數(shù)組長度不能用變量定義嗎?

C
胡說叔叔 2019-05-31 17:02:51
C語言中數(shù)組長度不能用變量定義嗎?
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊

定義數(shù)組的時候,數(shù)組的大小必須確定,并且是整型。
在C99中提出了變長數(shù)組,即為VAL,意思是你可以用一個變量去代替數(shù)組的大小。
例如 int val = 5;
int a[val];
變長數(shù)組中的變,也只是說你可以用變量去定義數(shù)組,但是變長數(shù)組的大小在創(chuàng)建后就是不變得,
而且變長數(shù)組必須的自動的存儲類。
由于變長數(shù)組的限制太多了,很少人去使用他。
所以對你這個問題,需要使用動態(tài)內(nèi)存,即用malloc calloc 這類的函數(shù)。


 



查看完整回答
反對 回復 2019-06-01
?
吃雞游戲

TA貢獻1829條經(jīng)驗 獲得超7個贊


只是定義數(shù)組的話是不行的,你可以把數(shù)組定義成指針,用c語言中的 malloc來分配空間,因為這是你手動分配的,在不用之后要手動釋放。
你可以如下申請
int **u = (int **)malloc(sizeof(int *) * m);
for(int i=0; i<n; i++)
{
u[i] = (int *)malloc(sizeof(int));
}
這樣u這個指針就相當于一個可變的2維數(shù)組u[m][n]了
釋放時用free





查看完整回答
反對 回復 2019-06-01
?
一只萌萌小番薯

TA貢獻1795條經(jīng)驗 獲得超7個贊


1、C語言中不支持。
C++中支持變長數(shù)組(你可以自行度娘變長數(shù)組和alloca函數(shù)),但是因為其實在棧上分配,不被推薦使用。做為解決方案,你可以使用C式的malloc函數(shù)或者C++式的new函數(shù)來在堆上動態(tài)分配內(nèi)存,這樣長度是完全可以自定的。

2、C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。

3、、在數(shù)組一章中,曾介紹過數(shù)組的長度是預先定義好的, 在整個程序中固定不變。C語言中不允許動態(tài)數(shù)組類型。例如: int n;scanf("%d",&n);int a[n]; 用變量表示長度,想對數(shù)組的大小作動態(tài)說明, 這是錯誤的。但是在實際的編程中,往往會發(fā)生這種情況, 即所需的內(nèi)存空間取決于實際輸入的數(shù)據(jù),而無法預先確定。對于這種問題, 用數(shù)組的辦法很難解決。

4、為了解決上述問題,C語言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要動態(tài)地分配內(nèi)存空間, 也可把不再使用的空間回收待用,為有效地利用內(nèi)存資源提供了手段。 其它文獻中所提到的"動態(tài)數(shù)組",指的就是利用內(nèi)存的申請和釋放函數(shù),在程序的運行過程中,根據(jù)實際需要指定數(shù)組的大小.其本質(zhì)是一個指向數(shù)組的指針變量.常用的內(nèi)存管理函數(shù)有以下三個:分配內(nèi)存空間函數(shù)malloc;分配內(nèi)存空間函數(shù) calloc;釋放內(nèi)存空間函數(shù)free。



查看完整回答
反對 回復 2019-06-01
  • 3 回答
  • 0 關注
  • 2382 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號