【发布时间】:2019-01-30 08:02:18
【问题描述】:
当我尝试使用 vector[int_number] 并且我的程序停止工作时出现异常。
uint64_t data = 0xffeeddccbbaa5577;
uint16_t *vector = (uint16_t*) data;
int currentPosition = 0;
while (currentPosition <= 3) {
uint16_t header = vector[currentPosition]; // problem here
Visual Studio 2017 向我返回:抛出未处理的异常:读取访问冲突。 向量为 0x6111F12。
我被困在这里。如果你知道我应该做什么,我将不胜感激。提前致谢!
【问题讨论】:
-
你到底想用这段代码做什么?因为无论它是什么,这都不是正确的方法。提出正确的问题,您可能会得到有用的答案。
-
如何获得一个 16 位的四个元素的向量? IE。矢量[0] = 5577,矢量[1]=bbaa 等?
-
@Flavinia 声明一个由四个 16 位数字组成的数组并使用
memcpy从data复制字节。 IRC,这是唯一合法的方式。顺便说一句,你可能想写uint16_t* vector = (uint16_t*)(&data);
标签: c++ visual-studio exception access-violation