首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于缓冲区指针的有关问题

2012-04-02 
关于缓冲区指针的问题最近发现程序代码中的一个错误,但是结果没弄明白。例如:byte* tmpbuf kglData.getDa

关于缓冲区指针的问题
最近发现程序代码中的一个错误,但是结果没弄明白。例如:
byte* tmpbuf = kglData.getData(); //获取缓冲区指针
uint length = kglData.getLength();//获取缓冲区长度
uint newlen = this->dealData(tmpbuf,length);//处理数据

dealData(tmpbuf,length)的实现:
uint TSerialportKgl::dealData(byte* kglDat,uint len)

  //*****具体处理代码略去
  kglData += 6;
  memcpy(kglDat,tmpbuffer,tmpbuffer.length);
  kglData -=9;//注意,这个地方应该是-6的,由于书写错误,写成了9
  return m_length;


等dealData函数返回之后,我查看tmpbuf指针的缓冲区,竟然智能的自动变成他原来的位置,也就是相当与上面的代码书写错误的地方是-6的效果。 新手,不太明白如果缓冲区指针往前移动到他原始位置之前,他能智能的自动回到他原始的位置吗?

[解决办法]
dealData(byte* kglDat,uint len)
这个dealData(tmpbuf,length)调用是将tmpbuf指针的值传到kglDat了,你可以把kglDat当成一个局部变量,函数内对kglDat指针的修改,不会影响到外面的变量。
[解决办法]
同LS

热点排行