c语言不能在函数中求数组大小,C语言中数组长度不能用变量定义吗?
翻翻過去那場雪
1、C語言中不支持。C++中支持變長數(shù)組(你可以自行度娘變長數(shù)組和alloca函數(shù)),但是因?yàn)槠鋵?shí)在棧上分配,不被推薦使用。做為解決方案,你可以使用C式的malloc函數(shù)或者C++式的new函數(shù)來在堆上動(dòng)態(tài)分配內(nèi)存,這樣長度是完全可以自定的。2、C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。3、、在數(shù)組一章中,曾介紹過數(shù)組的長度是預(yù)先定義好的, 在整個(gè)程序中固定不變。C語言中不允許動(dòng)態(tài)數(shù)組類型。例如: int n;scanf("%d",&n);int a[n]; 用變量表示長度,想對(duì)數(shù)組的大小作動(dòng)態(tài)說明, 這是錯(cuò)誤的。但是在實(shí)際的編程中,往往會(huì)發(fā)生這種情況, 即所需的內(nèi)存空間取決于實(shí)際輸入的數(shù)據(jù),而無法預(yù)先確定。對(duì)于這種問題, 用數(shù)組的辦法很難解決。4、為了解決上述問題,C語言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要?jiǎng)討B(tài)地分配內(nèi)存空間, 也可把不再使用的空間回收待用,為有效地利用內(nèi)存資源提供了手段。 其它文獻(xiàn)中所提到的"動(dòng)態(tài)數(shù)組",指的就是利用內(nèi)存的申請(qǐng)和釋放函數(shù),在程序的運(yùn)行過程中,根據(jù)實(shí)際需要指定數(shù)組的大小.其本質(zhì)是一個(gè)指向數(shù)組的指針變量.常用的內(nèi)存管理函數(shù)有以下三個(gè):分配內(nèi)存空間函數(shù)malloc;分配內(nèi)存空間函數(shù) calloc;釋放內(nèi)存空間函數(shù)free。
總結(jié)
以上是生活随笔為你收集整理的c语言不能在函数中求数组大小,C语言中数组长度不能用变量定义吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七台河计算机网络工程专业,网络工程本科专
- 下一篇: 深入学习二叉树(三) 霍夫曼树