2 xugesen1989 xugesen1989 于 2016.04.14 10:13 提问

c++中GetBuffer()的参数的0和1和2好像都没有区别?
c++

我把里面的参数设置成0,1,2,3,4,甚至是100,但好像都没有区别!我实在不晓得怎么理解这个函数了!~~~
随便填真的不会出错吗?

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.14 12:28
已采纳

(1)LPTSTR GetBuffer( );

(2)LPTSTR GetBuffer(int nMinBufferLength)

在第二个版本中,当设定的长度小于原字符串长度时,nMinBufLength = nOldLen,

该参数会被忽略,不分配内存,指向原CString;当设定的长度大于原字符串本身的长

度时就要重新分配(reallocate)一块比较大的空间出来

zhangheyong
zhangheyong   2016.04.14 10:17
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
对于GetBuffer() 与 ReleaseBuffer() 的一些分析
先 转载一段别人的文章 CString类的这几个函数, 一直在用, 但总感觉理解的不够透彻, 不时还有用错的现象. 今天抽时间和Nico一起分析了一下, 算是拨开了云雾: GetBuffer和ReleaseBuffer是一套需要配合使用的函数, 与GetBufferSetLength相比, 优点是如果分配的空间大于实际保存的字符串(0结尾), ReleaseBuffer会把多余申请的空间
CString中使用GetBufferSetLength和GetBuffer后执行releasebuffer的原理及必要性
CString的GetBufferSetLength方法 分类: MFC 2011-08-16 14:34 173人阅读 评论(0) 收藏 举报   在使用CString的GetBufferSetLength方法时,遇到了一个问题,代码如下: CString path; ::GetCurrentDirectory(MAX_PATH, path.GetBuffer
C++的string实现MFC的CString::GetBuffer
C++的string实现MFC的CString::GetBuffer 时间 2013-05-18 09:32:00  博客园精华区 原文  http://www.cnblogs.com/lijianglidedaxia/archive/2013/05/18/3084903.html 主题 MFC 今天一个老同学QQ留言给我。 老同学:“STL的string有没有类
CString的GetBuffer函数详解
1、定义 CString::GetBuffer有两个重载版本: (1)LPTSTR GetBuffer( ); (2)LPTSTRGetBuffer( int nMinBufLength );throw( CMemoryException ); 调用第二个版本中,当设定的长度nMinBufLength小于原字符串长度nOldLen时,nMinBufLength默认等于原来字符串长度nOld
CString的GetBuffer用法,CString原理,GetBuffer常见问题解决方法
一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); Return Value An LPTSTR pointer to the object’s (null-terminated) character buffer. Paramet
GetBuffer()、LPCTSTR
CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); // 这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容。 如果nMinBufLength(最小占用长度) 比当前buffer长度
CString之GetBuffer/ReleaseBuffer的使用
今天为了通过串口往单片机里写
关于Image.getPlanes()的使用
如题所示,image为图片数据,image.getPlanes()指的是获取该图片的像素矩阵,返回值为一个Plane[]矩阵, Image.Plane为一个抽象的类,getBuffer()为其一个方法。 那么问题来了,为什么得这样使用ByteBuffer buffer=image.getPlanes()[0].getBuffer() 而这样ByteBuffer buffer=image.ge
关于Buffer的问题 C++之GetBuffer函数详解
简直就是弱爆了,原来所谓的buffer是抽象的呀 buffer就是系统分配给用户的一块数据存储单元,和变量其实是一样的呀,omyga!用于暂时存储用户数据 这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容! 如果nMinBufLength 比当前buffer大,那么就调用ReleaseBuffer函数去
CString GetBuffer() GetString()
今天遇到了个棘手的问题, 弄了半天才搞定,在此记录下。 问题描述: MBCS工程中一个函数: void fun(CString& str1) { char *pstr = str1.GetBuffer(); }调用时: CString str("192.168.1.1"); fun(str) 然而在fun中却只能获取第一个字符, 其余都空白:“1