CString :: GetBuffer()示例

时间:2013-06-13 20:53:51

标签: c++ msdn getbuffer

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

LPTSTR p = s.GetBuffer( 10 );

有什么理由说它里面有10个吗?任何人都可以向我展示示例的输出吗?

1 个答案:

答案 0 :(得分:3)

10是最小缓冲区长度,所以如果你在CString上调用GetBuffer(),比方说4个字符,它会分配一个LPTSTR 10个字符长,以防你想要将更长的字符串strcpy到该缓冲区中(如他们在这个例子中做了)。示例中的10是任意的,它们可以很容易地使用6(“Hello”中的五个字母加上终止空值)或任何更大的数字,它们的工作方式相同。

一般情况下,除非你真的需要使用它,否则最好不要使用GetBuffer()。