为了账号安全,请及时绑定邮箱和手机立即绑定

有无知道这个情况的!CFile::Read()函数的问题,具体如下!

有无知道这个情况的!CFile::Read()函数的问题,具体如下!

达令说 2021-10-18 19:15:26
都知道这个函数的第一个参数是缓冲区 那么 缓冲区起码该够大吧? 但是我这样char *pString=new char;CString String;files.Read(pString,9);String=pString;CDC *pDC=GetDC();pDC->TextOutW(0,0,String,9);一段代码 竟然可以正常的读取 这是为什么呢? 难道是像字符串指针一样? “指针指向读出来的字符串?” 而且 如果把pString指向一个char变量 也不能正确运行 单单new分配内存可以 这为什么呢? 还有 Read()函数内部是怎么把读出来的数据放到我们提供的缓冲区的呢? 是不是一个字符一个字符的拷贝? 那和字符串指针有什么区别? 那不用初始化的指针不也可以用了吗?Read()函数内部是怎么把读出来的数据放到我们提供的缓冲区的呢? 是不是一个字符一个字符的拷贝? 那和字符串指针有什么区别? 那不用初始化的指针不也可以用了吗?
查看完整描述

2 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

char * 就是 string
但是你用new char ,只分配了一字节空间,能成功运行,不代表他是正常的
Read()后,自动一直向高地址填充数据
你又声明了一个CString 指向了 pString的地址,也就是那个串的首地址
所以能正常输出,

查看完整回答
反对 回复 2021-10-24
  • 2 回答
  • 0 关注
  • 344 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信