私は現在MFCライブラリを勉強していますが、そのオブジェクトの文字を読み込んで変更することを可能にする他のメンバ関数よりもCStringオブジェクトバッファへのポインタを返すGetBufferメンバを使うべきですか?例えば なぜ私は(コードはCStringオブジェクトの最初の文字を変更します)実行する必要があります。私はGetBuffer()メンバを使用するためのより適切なアプリケーションがあるとしSetAtの代わりにCStringのGetBufferメンバを使用するのはなぜですか?
CString aStr(_T("String")); //new CString object
aStr.SetAt(0, _T('a')); //set character at 0 position to 'a'
、しかし:
CString aString(_T("String")); //new CString object
LPTSTR p = aString.GetBuffer(); //create new pointer to aString buffer
_tcsncpy(p, LPCTSTR(_T("a")), 1); //set first character to 'a'
aString.ReleaseBuffer(); //free allocated memory
の代わりに私はそれが何であるか把握することができません...この関数は、メモリを解放するためにReleaseBuffer()を必要とし、ReleaseBuffer()が呼び出されないときにメモリリークを引き起こす可能性があります。それを使用する利点はありますか?