void WriteData(void *data,int len)
{
char * newPos=m_pData+m_iWriteOffset;
memcpy(newPos,data,len);
m_iWriteOffset+=len;
}
上面这个函数只是为了能过多次调用WriteData来把一些数据写到m_pData里
比如这样:
int x=10;
WriteData(&x,2);
char *str="abcd";
WriteData(&str,5);
m_pData是目标位置,m_iWriteOffset是每次写入数据后长度的累加
最后我取出m_pData只有第一个数据,后面写的不正常
memcpy没有覆盖最初的,也没有把后面写入的data加到末尾
不知道是那里出错了,还请知道的大神提点一下,不胜感激.
额,上面举例那随手写的,有误,这里补充一下
再封装两个用来写int和string的
void WriteInt(int i)
{
WriteData(&i,sizeof(int));
}
void WriteString(char *str)
{
WriteData(str,strlen(str)+1);
}
写法就像这样
int x=10;
WriteInt(x);
char *str="abcd";
WriteString(str);
问题应该不是语法错误,编译和运行的时候也没有报错
就是不知道为什么后面str数据没有追加到m_pData里,得到的结果想是10abcd这种意思
潇湘沐
慕尼黑的夜晚无繁华
BIG阳