子函式的指標釋放問題

2021-09-29 16:19:06 字數 351 閱讀 3319

對於剛接觸程式設計的人在子函式數中申請動態空間時可能會心有疑問,我們在子函式中申請的動態空間是否需要釋放呢?若是需要釋放又該如何釋放呢?

在子函式中申請的動態空間肯定是需要釋放的,否則會造成記憶體洩漏。

如果這個動態空間不是你需要返回的值,則可以直接在子函式中進行釋放,但是如果你需要將這個動態空間返回上一級函式,則無法在子函式中釋放,因為如果在返回之前釋放則返回值無效,甚至會報錯,如果在返回值之後釋放,則釋放**無法執行。這個時候我們需要在上一級函式中定義乙個指標變數,由這個指標去指向我們動態分配的空間,即去接受函式的返回值,再將這個指標釋放。

我們可以盡量避免在子函式中返回動態空間,直接在主函式中申請好空間之後,將指向該空間的指標傳入子函式。

C 指標釋放問題

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

指標測試,子函式用指標造成的影響。

c 和 c 函式呼叫的引數傳遞方式有兩種 傳值和傳引用。傳值只是值的傳遞,被呼叫函式則無法修改實在引數的值 傳引用則是實參和形參共享實在引數的儲存單元,所以被呼叫函式可以通過修改形參來修改實參的值。include using namespace std void extractnum char st...

關於子函式給主函式指標分配記憶體

典型的錯誤例子如下 在這個主函式的指標給子函式傳遞乙個指標,而在子函式中形參有開闢了一塊記憶體,此子函式的指標的記憶體裡儲存的位址與主函式是同一位址,即主函式的指 針和子函式形參的指標都指向同一塊記憶體的位址,但是在子函式裡,為子函式的指標申請了一塊空間,並不影響主函式的指標。因為子函式的指標又指向...