Delphi中的Free和Nil之理解

2021-05-27 23:01:00 字數 376 閱讀 8195

在delphi中釋放物件資源時一般用obj.free(obj為乙個例項名),不過程delphi中還有乙個freeandnil(物件名)函式,那麼用哪個好呢?free和nil的本質又都是什麼呢?

obj.free; //將obj所指向的物件銷毀。

obj:= nil; //將obj指標置空。如果將上面的一句放在後面,則free時會報錯,因為指標不指向該物件的位址,也不指向任何記憶體位址。

還有在銷毀物件時一定要注意,看還有沒有其他指標指向該物件,如果有卻銷毀掉了,那麼其他指標呼叫該物件時會報錯。如果有多個指標指向同乙個物件時,不要用freeandnil來銷毀物件,因為不確定是否還有指標指向該物件,此時只需把不用的指標置空就行了,不過在所有指標都不指向該物件時,一定要記得銷毀掉,以釋放資源。

free命令中cached和buffers的區別

root beta nginx free m total used free shared buffers cached mem 15948 5974 9974 0232 2828 buffers cache 2913 13035 swap 3999 03999 1 mem行 2 buffers c...

Linux中的free命令

分類 linux技術 2014 03 05 14 51 8031人閱讀收藏 舉報解釋一下linux上free命令的輸出。下面是free的執行結果,一共有4行。為了方便說明,我加上了列號。這樣可以把free的輸出看成乙個二維陣列fo free output 例如 free的輸出一共有四行,第四行為交換...

malloc和free的實現

被人問到malloc和free的實現問題。我們知道malloc的呼叫形式如 type p type malloc n sizeof type free的呼叫形式如 free p 好了,問題來了,free函式,我們只給傳入乙個指標,沒有傳入記憶體塊的大小n,那麼編譯器怎麼知道要釋放多少位元組的記憶體,...