關於new運算子和記憶體的問題

2023-01-03 16:15:56 字數 747 閱讀 5238

1樓:兀種起圓

delete 只是把指標所指向的記憶體給釋放掉了,並沒有把p給解決掉,就是說,p的記憶體位址是在的,但是這個位址指向的記憶體是真的已經被釋放掉變成「垃圾了」

2樓:匿名使用者

申請記憶體是在記憶體中尋找到一塊(一塊不夠可能通過鍊錶形式將多塊小的鏈結起來),將首位址返回給指標,記憶體被標記為已占用

釋放記憶體是釋放了記憶體管理鍊錶,和清空了記憶體占用標記,但p指標指向的這個記憶體的首位址還在

所以此時操作p,會造成程式崩潰

一般的程式設計規範要求

釋放之後p=null;

3樓:匿名使用者

int *p=new int(100); //向作業系統申請乙個整型單元,並將100放入這個單元,單元位址賦給p。

delete p; //將p所指單元(存放整數100的單元)還給作業系統使用, 作業系統可將這個單元分配給其他程式使用。

4樓:匿名使用者

int * p = new int(20);

memset(p, 0, 20);

p[0] = 0;

p[1] = 1;

p[2] = -1;

p[3] = -2;

int k = 0;

int h = 0;

for ( int i = 0; i < 20; i++)整數個數為k

負數個數為h

C語言運算子C語言運算子是怎麼運算的

內容來自使用者 wjian178 e68a84e8a2ad62616964757a686964616f31333433646432 1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正...

算術運算子的優先順序怎麼判斷,算術運算子 邏輯運算子 關係運算子 哪個優先順序高 哪個底?

1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 正號運算子 負號運算子 型別 型別轉換運算子 指標運算子 地址與運算子 sizeof 長度運算子 3級優先順序 左結合 乘法運算子 除...

C中不能被過載的運算子中是什麼運算子高手們幫忙解決

是c 的類成員函式指標呼叫運算子,是用來呼叫乙個類函式指標的。舉例 假設有乙個專classa類擁有乙個成員函式void classa func int i 則可屬以這麼用 void classa fp int i 定義乙個類函式指標。classa obj fp classa func 給這個類函式指...