關於C 中delete出錯的問題

2022-02-15 03:39:55 字數 725 閱讀 3298

1樓:

delete data

這種使用方法,是釋放二維陣列時採用的。

你改為delete data;試一試。

c++ delete錯誤

2樓:洪修潔

=哪行啊

彙編裡面有個立即數的概念,高階語言程式設計裡面也有,你段位不夠所以不知道

一般程式在記憶體中有三處空間

最下面的是靜態記憶體,放靜態資料,**本身等。可以粗略的認為.exe有多大,靜態記憶體就有多大

上面是棧記憶體,這是一塊浮動記憶體,程式執行的過程中開闢,你定義乙個區域性變數,int

char 其他自定義型別,都是在這裡開闢,這裡不需要你自己釋放,生命週期結束了自動**。生命週期你懂嗎?

最上面是堆記憶體,這個是用new或其他什麼申請開闢的,這個需要手動釋放,不釋放的結果就是你在課本上看到的,或者其他什麼地方看到的。

你這裡「陳麟」就是乙個立即數,在浮動棧裡面,這裡是不需要顯式釋放的。

忘了說了,這裡「=」是在給指標賦值,給指標賦值你知道是什麼意思嗎,就是你的str已經不指向你開闢的記憶體空間了,指向了「陳麟」的記憶體首位址。

雖然你時刻記得要釋放記憶體,但是你不停地在犯記憶體洩露的錯,這一塊記憶體還沒釋放你就改變了指標的指向,你把書翻爛了,書上每乙個字你都認識,不如我告訴你的這些

3樓:

str="陳麟"; 改用strcpy

C 中delete和delete的區別

請問你想問的是不是 delete 與 delete 的區別?兩者之間區別的通俗理解是,delete是釋放乙個單位的堆空間,而delete是刪除多個單位堆空間。比如int p1 new int 釋放p1使用delete p1 或者deletep1 都是可以的,表示釋放1 sizeof int 個堆空間...

關於C 指標的問題,C 中關於指標的一些問題

是你想多了 指標實際上也是乙個變數,也佔用記憶體,你用 取指標變數的位址,沒問題,它並不會給 指標變數 這個東西分配記憶體,只是把指標變數的位址值給你而已.這樣想吧,指標實際上也是乙個變數,只不過它的值是乙個位址,不是乙個整型,字元型.但是,但是,但是 重要的事說三遍 指標變數指向的位址是有具體型別...

c語言關於陣列中0和的儲存問題,C語言關於陣列中0和 0 的儲存問題

只能佔用4 個 第五個要留給 0 a 4 0 和 a 4 0 這倆一樣 0 ascii 碼 0 a 4 0 這樣的 0才是ascii碼48 不要被那些人誤導 首先乙個字串的話末尾是必須要有 0的 否則會越界,這樣的後果就是程式會有bug,如果你的陣列有5個空間的話,最後乙個一定要留給 0至於a 4 ...