全局數組在程序運行結束時自動釋放。

企業建站必須是能夠以充分展現企業形象為主要目的,是企業文化與產品對外擴展宣傳的重要窗口,一個合格的網站不僅僅能為公司帶來巨大的互聯網上的收集和信息發布平臺,成都創新互聯公司面向各種領域:成都玻璃隔斷等成都網站設計、成都全網營銷推廣解決方案、網站設計等建站排名服務。
函數內定義的數組在函數退出時自動釋放。
C/C++沒有提供人為釋放辦法。
在實際使用中,是沒有錯誤的。因為,任何指針都是一樣的(就是個內存地址,只是因為地址中存儲的數據類型不同,指針的類型不同)
編譯器,在編譯時,會檢查函數參數類型與調用類型是否相同,如果不同,則會報錯誤或是警告,這在不同的編譯器上表現不一樣。
一般在寫代碼時,嚴格來說,調用函數時的實參一定要與實參類型相一致,否則,有可能會出錯誤。
綜上,如果不想看到編譯警告,則應該在調用時,加上強制轉換,就可以了。(向編譯器表明,我知道不同,但就是想這樣用),如:
int **intPtr ;
....
FreeArray2( 10, (void**) intPtr );
#include
#include
int
main()
{
char
a[5];
gets(a);
//你這個代碼是我的電腦上運行是錯誤的
free(a+2);//a+5不屬于a的,a的范圍是a[0]到a[4],而且這個free是對于指針的,你對這種是沒有用的,a+2是常量,a也是常量,是地址常量.不能用free的
printf("%s",a);
//system("pause");
getchar();
return
0;
}
你提問中定義方式是在函數完成前釋放不了的,你定義的字符數組,放在stack空間,不能用free()試圖釋放堆中的內容,因為那里是一段程序運行的保證。
只有使用malloc()在棧空間開辟的動態內存才能被釋放!
如果你后面的代碼想繼續用這個數組名的話,這個數組還是可以重新賦值。你可以把你用到的數據獨到這個變量中就行了!
你定義的anto數組在函數完成后,系統自己就回收了!
line數組會在函數執行結束后釋放,因為它屬于函數里的局部變量。
所謂的釋放不是說這個數組已經消失得無影無蹤,而是說它現在所占據的空間可以由其他數據再次使用(即覆蓋),我們不要再去訪問這個line數組了,因為它的內容隨時可變。
新聞名稱:c語言函數數組釋放 動態數組c++創建與釋放
當前地址:http://www.yijiale78.com/article28/hgoccp.html
成都網站建設公司_創新互聯,為您提供自適應網站、品牌網站建設、企業網站制作、營銷型網站建設、動態網站、Google
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯