一時看不明白你的代碼。一個原則是,start指向了誰。如果指向了在這個函數(shù)中定義的臨時自動型數(shù)組,那必然存在返回局部數(shù)組指針的問題,就是你說的內(nèi)存釋放問題。這樣雖然指針被返回了,但它指向的內(nèi)容已經(jīng)不受代碼控制了,很危險。但如果start指向的是在主函數(shù)中聲明的數(shù)組,或是全局或靜態(tài)數(shù)組(這個函數(shù)中定義的靜態(tài)數(shù)組也行),或者是用動態(tài)分配法獲得的內(nèi)存空間且未曾釋放,則不存在任何問題,是完全合理合法的。用動態(tài)分配法時要注意在不用時釋放內(nèi)存空間,以免造成內(nèi)存泄漏。
為沈北新等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及沈北新網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站制作、成都網(wǎng)站建設、沈北新網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
區(qū)分內(nèi)存類型,有不同結(jié)果:
1
局部變量。
即在函數(shù)內(nèi)部定義的變量,且變量不帶static修飾。這時,在退出函數(shù)后,變量自帶內(nèi)存會自動釋放。
2
靜態(tài)變量。
函數(shù)內(nèi)部定義的帶static修飾的變量為靜態(tài)變量,這種變量在函數(shù)退出后不會釋放內(nèi)存,直到程序退出時一起釋放。
3
動態(tài)分配內(nèi)存。
指通過malloc,calloc,zalloc等函數(shù)申請的內(nèi)存空間,這類空間在退出函數(shù)后不會自動釋放,要釋放只有通過free函數(shù)的調(diào)用,進行內(nèi)存釋放。
釋放空間是指用“動態(tài)申請內(nèi)存函數(shù)”申請成功的空間,不是你寫的代碼占用的空間。你寫的代碼的可執(zhí)行文件占用的空間要等程序完全退出后才能自動釋放,動態(tài)申請的空間在使用完畢后可以用對應的“釋放函數(shù)”釋放,以防止所謂“內(nèi)存泄漏”——就是把內(nèi)存空間用完了,程序無法運行下去了。如果只申請不釋放,積累多了就會產(chǎn)生內(nèi)存泄漏問題;在空間申請得較少的情況下也不至于一定產(chǎn)生泄漏,等程序退出時也就自動釋放了。但寫合格的程序是不能有這種指望的,正確的做法是“申請——成功后使用——使用完后及時釋放。
C管理內(nèi)存大致可以理解為兩種,分配在棧上的,一個是分配在堆上的。
臨時變量,動態(tài)變量,分配在棧上,運行完,直接彈出棧,就沒了。
分配在堆上的內(nèi)存,釋放的時候,基本上可以理解為,指針不指這里了。也就失去了對這塊內(nèi)存的控制。其實所謂的釋放。字面意思容易讓人理解錯。
有些機器有些操作系統(tǒng),會在釋放的時候清空這段內(nèi)存,但是這種做法效率不高,但是安全,很少有機器這么做,多數(shù)都是所謂釋放,就是不讓你控制這塊內(nèi)存了而已。
分享題目:c語言函數(shù)釋放內(nèi)存 c++釋放內(nèi)存函數(shù)
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article20/dooheco.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、營銷型網(wǎng)站建設、ChatGPT、軟件開發(fā)、網(wǎng)站導航、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)