肯定會(huì)釋放了,函數(shù)調(diào)用完成后,函數(shù)里的所有局部變量將會(huì)被釋放。但是你寫的這個(gè)程序根本就有問題。你所返回的只是一個(gè)地址空間,所以一直沒變,釋放指的是將這個(gè)地址里的內(nèi)容清除掉,以便使其它的數(shù)據(jù)可以用這個(gè)地址的內(nèi)存。
青島網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),青島網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為青島成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的青島做網(wǎng)站的公司定做!
函數(shù)返回前沒有delete,指針是沒有了,但指針指向的內(nèi)存不會(huì)被釋放,所以不會(huì)出現(xiàn)野指針,但會(huì)造成內(nèi)存泄漏。這樣使用指針是不規(guī)范的??赡軙系睦颖容^短小,這個(gè)問題不容易暴露出來,使結(jié)果看上去一切正常。
會(huì)自動(dòng)釋放,指針也是一樣的。局部變量的作用域是定義該變量的函數(shù)或定義該變量的復(fù)合語句。只在定義它的函數(shù)或復(fù)合語句范圍內(nèi)有效,只能在定義它的函數(shù)或復(fù)合語句內(nèi)才能使用它們。
這種變量在函數(shù)退出后不會(huì)釋放內(nèi)存,直到程序退出時(shí)一起釋放。3 動(dòng)態(tài)分配內(nèi)存。指通過malloc,calloc,zalloc等函數(shù)申請(qǐng)的內(nèi)存空間,這類空間在退出函數(shù)后不會(huì)自動(dòng)釋放,要釋放只有通過free函數(shù)的調(diào)用,進(jìn)行內(nèi)存釋放。
line數(shù)組會(huì)在函數(shù)執(zhí)行結(jié)束后釋放,因?yàn)樗鼘儆诤瘮?shù)里的局部變量。
如果在自定義函數(shù)里面new的指針,函數(shù)返回前沒有delete,指針是沒有了,但指針指向的內(nèi)存不會(huì)被釋放,所以不會(huì)出現(xiàn)野指針,但會(huì)造成內(nèi)存泄漏。這樣使用指針是不規(guī)范的。
一般在函數(shù)中的變量指針都會(huì)釋放,但是除了用*alloc取得的空間,還除了加了static的變量,加了static的變量只在程序退出后才釋放,用*alloc取得的空間只在free后和程序結(jié)束時(shí)才釋放。
函數(shù)是單向傳遞的 如果實(shí)參是指針 在被調(diào)用函數(shù)中改變的是指針 則屬于單向傳遞 主函數(shù)中指針不變。
函數(shù)參數(shù)用值傳遞時(shí),函數(shù)的形參只不過是實(shí)參的拷貝而已。也就是說,1中調(diào)用swap函數(shù)時(shí),內(nèi)存中實(shí)際上a,b,x,y四個(gè)變量都存在,x是a的拷貝,y是b的拷貝,對(duì)x,y的值進(jìn)行交換,a,b的值并未交換。
void swap(int *a,int *b){int *t;t=a;a=b;b=t;} 這樣操作指針自身的值實(shí)際上對(duì)函數(shù)來說是實(shí)參值,不是形參,如果你要交換指針本身的話,需要用指針的地址來操作,即2級(jí)指針來做。
1、C語言整型、實(shí)型數(shù)據(jù),如果以變量名稱作為參數(shù),系統(tǒng)規(guī)定的處理方式就是:實(shí)際參數(shù)僅決定形式參數(shù)的初值,形式參數(shù)在子函數(shù)內(nèi)部的操作與實(shí)際參數(shù)無關(guān)。
2、調(diào)用函數(shù),只能改變指針指向的內(nèi)存空間的內(nèi)容,不能改變實(shí)參指針變量的值。我覺得題主對(duì)指針變量,還算有一點(diǎn)了解。指針變量,其實(shí)也就是一個(gè)變量,但它的值是一塊內(nèi)存的地址。
3、如果通過函數(shù)傳參方式調(diào)用,并且不是傳的指針,那就不會(huì)改變?cè)瓉淼闹担绻敫淖內(nèi)肿兞康闹?,可以直接在函?shù)中使用,不需要傳參。
4、變量的形參是在內(nèi)存里新的空間里復(fù)制一份實(shí)參的值進(jìn)行操作,但不改變實(shí)參的值,就比如看到青蛙A想試試蛙肉好吃不?于是你找了一只青蛙B來試吃,結(jié)果不錯(cuò),青蛙B是死了,但是A還好好的,一樣的道理。