memcpy的问题

来源:百度知道 编辑:UC知道 时间:2024/07/03 02:39:57
请高手帮我解释一下,为什么我用下面第一个函数时会出现复制数据错误?比如复制1,2,3,4,5 。第二个函数复制正确,而第一个函数会出现一些随机数比如1,-25624554,-554225554,-558966552,5。我想应该不是指针的问题。请高手解释一下,谢谢
long CopyRoom(TElem *objRoom,long n1,TElem *srcRoom,long n2)
{
memcpy(objRoom,srcRoom,n2);
return n2;
}

long CopyRoom(TElem *objRoom,long n1,TElem *srcRoom,long n2)
{
for(int tt=0;tt<len;tt++)
objRoom[tt]=srcRoom[tt];
return n2;
}

第2个函数拷的是len*sizeof(objRoom)个字节,而第一个函数拷的是n2个字节.除非你的n2==len*sizeof(objRoom),不然肯定有一个有问题

memcpy(objRoom,srcRoom,n2 * sizeof(TElem));

memcpy是按照字节大小的!菜鸟!!!!