-2
例如,我在指針上有一個動態段樹,如果我將樹的根分配給NULL,內存是否會清除?如何有效地清除它?如何清除動態內存?
例如,我在指針上有一個動態段樹,如果我將樹的根分配給NULL,內存是否會清除?如何有效地清除它?如何清除動態內存?
分配給NULL只會改變指針的地址,但不會影響分配的內存。釋放應符合分配。這意味着如果您已分別分配樹的每個inode,則還需要單獨釋放它們(最可能是以相反的順序 - 取決於塊的內容)。如果所有的內存一次分配,它也應該立即釋放。
有沒有一種方法來有效地釋放內存? –
嗯,這是一個非常抽象的問題,沒有關於上下文的知識。所以我只有一個一般的建議,以避免分配小塊,但這又取決於你的情況。同時希望閱讀關於展示位置的新內容可能會有所幫助。這個想法是分配一大塊內存,其中將包含多個/多個小對象。然後解除分配可能會非常有效。 – dmi