应该是个容易被忽略的有关问题,发出来看看大家有啥建议没
应该是个容易被忽略的问题,发出来看看大家有啥建议没
是这样的,我有一个数组,长度在144,但是当我拷贝到一个新的数组中以后(用的memcpy函数,我也检查过了,参数并没有写错),从第36个元素开始,所有的数据都失效了,所以来这里麻烦大家给点看法,看看有些什么样的原因会导致这种问题,谢谢
另外补充一下,大致形式是这样的
int* i = new int[144];
int* i2 = new int[144];
memcpy(i,i2,144);
for(i= 0; i < 144; i += 3)
{
this->data = Data(i2[i],i2[i+1],i2[i+2]); //这里从第36个元素开始,获取的数据都是无效的
}
大家怎么认为的?
------解决方案--------------------
memcpy是以字节为单位,应该改为:
memcpy(i, i2, 144 * sizeof(int));
是这样的,我有一个数组,长度在144,但是当我拷贝到一个新的数组中以后(用的memcpy函数,我也检查过了,参数并没有写错),从第36个元素开始,所有的数据都失效了,所以来这里麻烦大家给点看法,看看有些什么样的原因会导致这种问题,谢谢
另外补充一下,大致形式是这样的
int* i = new int[144];
int* i2 = new int[144];
memcpy(i,i2,144);
for(i= 0; i < 144; i += 3)
{
this->data = Data(i2[i],i2[i+1],i2[i+2]); //这里从第36个元素开始,获取的数据都是无效的
}
大家怎么认为的?
------解决方案--------------------
memcpy是以字节为单位,应该改为:
memcpy(i, i2, 144 * sizeof(int));