常見的CString在網路上都查得到,所以好用到不用寫筆記。
但是,常常遇到CString::GetBuffer()的疑問就是,它究竟是做什麼的??
CString常用方法簡介
CString::GetString()與CString::GetBuffer()
查了一些參考資料發現
CString::GetBuffer()和CString::ReleaseBuffer()是相對應的動態記憶體宣告與釋放。
CString::GetBuffer() //先用它取得許多記憶體空間,存放要處理的字串。
CString::ReleaseBuffer() //存放好之後,再使用它釋放掉多餘不用的記憶體空間。
看到這,你是不是想回去檢查Code看看有沒有什麼地方,是需要釋放釋放的呢?
別急!還有番外篇
CString::GetBufferSetLength()又是做什麼用的?
若上面像是動態記憶體(malloc)的宣告,而這個就像是靜態的宣告(陣列)。
它是無法釋放的。
沒有留言:
張貼留言
(什麼是留言欄訊息?)