装运箱:GetBuffer()例子

CString::GetBuffer() example

本文关键字:例子 GetBuffer      更新时间:2023-10-16

我试图理解GetBuffer()函数。看起来它返回了指向CString的指针,这在msdn GetBuffer()中得到了确认。但是,我不理解msdn GetBuffer()中显示的示例。

LPTSTR p = s.GetBuffer( 10 );

里面是10有什么原因吗?谁能告诉我这个例子的输出?

10是最小的缓冲区长度,所以如果你在一个CString上调用GetBuffer(),比如说,4个字符,它将分配一个长度为10字符的LPTSTR,以防你想把一个更长的字符串输入到缓冲区中(就像他们在例子中所做的那样)。示例中的10是任意的,它们可以很容易地使用6("Hello"中的五个字母加上结束的null)或任何更大的数字,并且效果相同。

一般来说,除非你真的需要使用GetBuffer(),否则你最好避开它。