要看數組所使用的內存空間。
創新互聯公司服務項目包括伊通網站建設、伊通網站制作、伊通網頁制作以及伊通網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,伊通網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到伊通省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
1、如果是局部函數棧空間中的數組,有程序自動回收。
void?f()
{
int?a[2]?=?{1,2};?//局部棧空間上的數組,程序自動回收
}
2、如果是動態內存分配 的數組,在c語言中使用free()將其釋放。回收有操作系統的堆管理器來進行操作。
void?f()
{
int?*p?=?(int?*)?malloc(2?*?sizeof(int));
free(p);?//釋放
}
你提問中定義方式是在函數完成前釋放不了的,你定義的字符數組,放在stack空間,不能用free()試圖釋放堆中的內容,因為那里是一段程序運行的保證。
只有使用malloc()在棧空間開辟的動態內存才能被釋放!
如果你后面的代碼想繼續用這個數組名的話,這個數組還是可以重新賦值。你可以把你用到的數據獨到這個變量中就行了!
你定義的anto數組在函數完成后,系統自己就回收了!
line數組會在函數執行結束后釋放,因為它屬于函數里的局部變量。
所謂的釋放不是說這個數組已經消失得無影無蹤,而是說它現在所占據的空間可以由其他數據再次使用(即覆蓋),我們不要再去訪問這個line數組了,因為它的內容隨時可變。
全局數組在程序運行結束時自動釋放。
函數內定義的數組在函數退出時自動釋放。
C/C++沒有提供人為釋放辦法。
名稱欄目:c語言函數中釋放數組 c語言數組需要釋放嗎
網址分享:http://m.kartarina.com/article26/hgpccg.html
成都網站建設公司_創新互聯,為您提供App設計、、響應式網站、微信小程序、小程序開發、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯