按你說的,沒有把指針返回也沒有釋放,那么函數(shù)返回時(shí)開辟的空間還在,但你已無法引用。

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供平定網(wǎng)站建設(shè)、平定做網(wǎng)站、平定網(wǎng)站設(shè)計(jì)、平定網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、平定企業(yè)網(wǎng)站模板建站服務(wù),10余年平定做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
用malloc是在堆中分配的空間,用完需用自已顯示釋放.
采用如int
a=0的方式會(huì)在棧中分配空間,函數(shù)返回時(shí)棧指針回移,此空間仍能被其它函數(shù)使用(相當(dāng)于自動(dòng)釋放)
其實(shí)寫一個(gè)函數(shù),開頭的聲明變量或數(shù)組就是在開辟空間,所以只要寫代碼,開辟空間的事肯定就少不了。但你這里說的我想應(yīng)該是指“動(dòng)態(tài)開辟空間”。動(dòng)態(tài)開辟空間一般在以下情況下進(jìn)行:
編程時(shí)不知道需要多大的空間,要在程序運(yùn)行時(shí)由用戶輸入大小或計(jì)算出所需大小;
一些數(shù)據(jù)量太大,棧區(qū)放不下,需要?jiǎng)?chuàng)建在堆里;
由于某需要要求代碼這樣寫。
大致就這些情況。
①C語(yǔ)言編碼的時(shí)候不會(huì)開辟內(nèi)存,只有在編譯之后才會(huì)生成可執(zhí)行程序,在可執(zhí)行程序里面給出內(nèi)存的開辟方法。
②真正內(nèi)存的開辟是在程序運(yùn)行的時(shí)候。程序裝載到內(nèi)存里面,開始運(yùn)行才會(huì)真正開辟內(nèi)存。
③C語(yǔ)言程序裝載到內(nèi)存中之后,其在內(nèi)存中的進(jìn)程空間中有代碼區(qū)、全局?jǐn)?shù)據(jù)區(qū)、堆區(qū)和棧區(qū)。代碼區(qū)存放代碼編譯后的執(zhí)行指令;全局?jǐn)?shù)據(jù)區(qū)存放全局變量和靜態(tài)變量;棧區(qū)存放函數(shù)內(nèi)部的局部變量和返回地址,這部分內(nèi)存是在函數(shù)調(diào)用時(shí)才申請(qǐng)的;堆區(qū)是自由申請(qǐng)內(nèi)存的區(qū)域。需要使用malloc等自己分配內(nèi)存,這部分內(nèi)存需要自己釋放。
④向int i;這樣的句子,在C語(yǔ)言中,既是聲明又是定義,所以這樣的語(yǔ)句其實(shí)已經(jīng)分配了內(nèi)存,而不是等到賦值的時(shí)候。
⑤有不懂的可以追問。
#includestdio.h
#includestdlib.h
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*LinkList;
LinkList Init()
{
LinkList L = NULL;
printf("%d ",L);
L=(LinkList)malloc(sizeof(Lnode));
printf("%d ",L);
L-next=0;
return L;
}
void main()
{
LinkList A = NULL;
printf("%d ",A);
A = Init();
}
文章標(biāo)題:c語(yǔ)言函數(shù)開辟的空間,c語(yǔ)言構(gòu)造函數(shù)
網(wǎng)站地址:http://chinadenli.net/article49/dsigeeh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)