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