CString的GetBuffer大小事

常見的CString在網路上都查得到,所以好用到不用寫筆記。
但是,常常遇到CString::GetBuffer()的疑問就是,它究竟是做什麼的??

CString常用方法簡介
CString::GetString()與CString::GetBuffer()


查了一些參考資料發現

CString::GetBuffer()和CString::ReleaseBuffer()是相對應的動態記憶體宣告與釋放。

CString::GetBuffer()        //先用它取得許多記憶體空間,存放要處理的字串。
CString::ReleaseBuffer()  //存放好之後,再使用它釋放掉多餘不用的記憶體空間。

看到這,你是不是想回去檢查Code看看有沒有什麼地方,是需要釋放釋放的呢?

別急!還有番外篇

CString::GetBufferSetLength()又是做什麼用的?

若上面像是動態記憶體(malloc)的宣告,而這個就像是靜態的宣告(陣列)。
它是無法釋放的。

沒有留言:

張貼留言

(什麼是留言欄訊息?)