复制存储在空指针的整型数组到整型数组
Copying Int Array Stored at Void Pointer to Int Array
在下面的循环中,我试图复制存储在voidPtr地址的数据。这里的数据是一个长度为count的整数数组。我读到将这个数组强制转换为int类型,然后执行复制(如下所示)应该可以工作。
int intArr[count];
for (int i = 0; i<count; i++){
intArr[i] = ((int*) voidPtr)[i];
}
然而,当我尝试用int来打印数组时,我收到了一个段错误。
for (int i = 0; i<count; i++){
printf("%d ", intArr[i]);
}
任何想法?
您正在做错误的事情,当编译器警告您时,您只需通过强制转换将其关闭。不,你搬起石头砸了自己的脚,这该怪谁呢?:)
你所做的是说voidPtr现在变成了一个int*,请访问它的元素i
。这不可能是对的。最有可能的是,在您的系统上,void*与int*不一样,因此使用此强制转换将访问不正确的元素。另外,你的void*似乎没有指向足够大的位置——这就是导致崩溃的原因。
不要在c++中使用void*,不要强制转换
相关文章:
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 如何将SHA1转换为无符号长整型数组[5]
- 我需要以相反的方式复制一个长整型数组,我需要系统函数,例如 memcpy 有没有
- 复制存储在空指针的整型数组到整型数组
- 如何使用SSE来处理整型数组,使用条件
- 序列化/反序列化整型数组为char数组
- c++将整型数组赋值给大小相同的空整型数组
- 按值传递时改变整型数组的大小
- c++排序(升序,降序)整型数组
- 将字符串转换为整型数组
- 将二进制文件读入整型数组
- 在整型数组的最后一个元素中存储数据的问题
- 读取文件并将其作为整型数组输入
- 稍后在{}中添加无符号整型数组
- 用户输入存储在整型数组中的值c++
- 当使用整型数组的一部分时
- 将整型数组传递给c++ DLL
- 将字符数组转换为整型数组
- 引用整型数组的指针
- 比较浮点数组和整型数组