delete釋放指針 C 如果類中有一個指針數(shù)據(jù)成員,而我沒有用new。析構(gòu)函數(shù)要不要delete?
C 如果類中有一個指針數(shù)據(jù)成員,而我沒有用new。析構(gòu)函數(shù)要不要delete?C無論是哪種數(shù)據(jù),是否刪除都取決于空間是否分配了新的。1. 指向由函數(shù)脈沖定義的局部變量的指針。如果是局部變量,則不需
C 如果類中有一個指針數(shù)據(jù)成員,而我沒有用new。析構(gòu)函數(shù)要不要delete?
C無論是哪種數(shù)據(jù),是否刪除都取決于空間是否分配了新的。
1. 指向由函數(shù)脈沖定義的局部變量的指針。如果是局部變量,則不需要刪除;
2。如果類中有指針數(shù)據(jù)成員,并且沒有使用new,則析構(gòu)函數(shù)不需要刪除。在類或函數(shù)中,只要int*和char*不是新的,就不需要釋放它們。系統(tǒng)會自動釋放他們占用的內(nèi)存,只有新的才會手動刪除。原理:int*和char*是存在于堆棧上的局部變量,例如堆棧上的int*PP,P的值也是堆棧的地址。但當(dāng)int*P=newint時,P在堆棧上。但是P的值是一個地址,它是堆上的一個地址。如果不刪除P,地址會一直被占用,不能被其他對象使用,所以我們需要在地址用完時釋放地址。因此堆??臻g將自動釋放,而堆空間必須手動釋放。
C delete指針數(shù)組的問題?
在C編程中刪除指針數(shù)組時,需要同時刪除數(shù)組成員指針指向的內(nèi)存。
有兩種常見的方法。一種是在數(shù)組名前加上[]符號,格式是刪除數(shù)組名。一種是遍歷數(shù)組成員并逐個刪除。不同的形式有相同的效果。小編建議第一條路。
此外,刪除指針后,建議將指針設(shè)置為null。該函數(shù)的作用是防止下次使用時出現(xiàn)指針故障,這通常稱為野生指針。
良好的編碼習(xí)慣是成功的一半。我希望我的回答能對這個問題有所幫助。