c 中的delete 異常

2021-07-10 23:36:44 字數 646 閱讀 1185

昨天乙個小學弟寫c++程式是出現了乙個問題後來經過我們和乙個大三的學長討論解決了這個問題感覺不錯,拿出分享他報錯這個錯

**如下:`#include

using namespace std;

class point

point(int x,int y)

//深拷貝

point(const point & point)

~point()

void show();

private:

int x;

int y;

char * str;

}; void point::show()int main(){

point p(3,4);

p.show();

char * str=new char[10];

str=」goods」;

point p1(5,6,str);

p1.show();

return 0;

原因出現在這裡析構函式中的delete 陣列 只能刪除動態分配的空間,然而我們傳入的是儲存在文字常量區 的指標,注意雖然main中的str初始化時是指向動態分配的空間但是 str=」goods」;又變成指向文字常量區 了

C 中delete和delete 的區別

c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型別分配和 空間 2 為自...

C 中delete和delete 的區別

c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型別分配和 空間 2 為自...

C 中的delete和delete 區別

一直對c 中的delete和delete的區別不甚了解,今天遇到了,上網查了一下,得出了結論。做個備份,以免丟失。c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。關於 new 和 delete,其中又分為兩種...