| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 307 人关注过本帖
标题:ReleaseBuffer 有什么用呢?
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:0 
ReleaseBuffer 有什么用呢?
程序代码:
#include "u_def.h"
#include <stdio.h>
#include <afx.h>
// #include "u_linearStruct.h"            


int main( int ac, char **av )
{
    char *pstr = NULL;
    CString strIn("zhong");

    pstr = strIn.GetBuffer(0);
    printf("0:%s\n", pstr);

    pstr = strIn.GetBuffer(1);
    printf("1:%s\n", pstr);
   

    strIn.ReleaseBuffer();
    printf("ReleaseBuffer:%s\n", pstr);

    strIn += "yunde";
    printf("+ :%s\n", pstr);

    strIn.ReleaseBuffer();
    printf("+ ReleaseBuffer:%s\n", pstr);
   

    return 0;
}
使用上面的代码发现,
1)在CString变量的长度发生变化的时候,其内存地址均会被reallocated了,
也就是ReleaseBuffer不管是否调用一次,pstr的地址都不会有效了,那为什么在MSDN上说
使用了GetBuffer再执行其他的操作前需要嗲用ReleaseBuffer
2)发现strIn.GetBuffer(0);和strIn.GetBuffer(1);得到相同的返回值,那这个参数有什么用呢 ?


2010-07-22 23:18
快速回复:ReleaseBuffer 有什么用呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015804 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved