C 關於指標釋放的概念

2021-09-01 16:05:41 字數 416 閱讀 9560

下面是自己總結的一些關於new建立類物件特點:

ctest* ptest = new ctest();

delete ptest;

ptest用來接收類物件指標。

不用new,直接使用類定義申明:

ctest mtest;

此種建立方式,使用完後不需要手動釋放,該類析構函式會自動執行。而new申請的物件,則只有呼叫到delete時再會執行析構函式,如果程式退出而沒有執行delete則會造成記憶體洩漏。

這跟不用new申明物件有很大區別,類指標可以先行定義,但類指標只是個通用指標,在new之前並為該類物件分配任何記憶體空間。比如:

ctest* ptest = null;

但使用普通方式建立的類物件,在建立之初就已經分配了記憶體空間。而類指標,如果未經過物件初始化,則不需要delete釋放。

C 指標釋放問題

今天看到了乙個問題,其實在專案中也經常遇到指標釋放的問題,先看看乙個簡單的指標釋放的問題 問題如下 1 一般在c 類中有成員指標的話,會在類的析構函式裡釋放 delete 這個指標?2 基於 1 如果傳給這個成員指標不是乙個堆分配的指標,那類發生析構會發生錯誤,這個怎麼解決?如下 class a 1...

c 指標的概念

最簡單乙個概念就是引用,相當於給這個變數起了另乙個名字 eg a b 以後使用ab都可以修改這個變數。可以用於函式傳遞引數 hello string pointa astring 最重要的一點,就是宣告指標的時候 reference string pointa astring string poin...

C語言指標的概念

計算機中所有的資料都必須放在記憶體中,不同型別的資料占用的位元組數不一樣,例如 int 占用4個位元組,char 占用1個位元組。為了正確地訪問這些資料,必須為每個位元組都編上號碼,就像門牌號 身份證號一樣,每個位元組的編號是唯一的,根據編號可以準確地找到某個位元組。下圖是 4g 記憶體中每個位元組...