memcpy会移动buf中当前所指位置吗

C++语言 码拜 8年前 (2017-04-25) 1312次浏览
char l_acData[4096] = {  “\0”  };
char *l_FiledValue;
int l_iFieldType = 0;
int l_iLen = 0;
int FiledId = 0;
for(FiledId=200;FiledId< 212;FiledId++)
{
l_FiledValue = (char*)p_rPreTreatment->pGetMsg(FiledId, l_iLen, l_iFieldType);//取出id中的值
memcpy(l_acData,l_FiledValue,l_iLen); //接入Data buf中
}
可以实现将200到212id中的值依次接入buf中吗?
memcpy后 下次再memcpy  l_acData中所指的位置会后移吗?
解决方案

35

memcpy(l_acData,l_FiledValue,l_iLen);
要不停的在后边拼接,就需要改变目标位置,也就是说l_acData需要增加复制的字节数

10

不会后移,memcpy参数是按值传递的,就算移动也只是移动一个复制的指针,而不是你的实参

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明memcpy会移动buf中当前所指位置吗
喜欢 (0)
[1034331897@qq.com]
分享 (0)