Fla*_*ave 3 c++ exception access-violation visual-studio
当我试图使用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
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2017返回我:抛出未处理的异常:读取访问冲突.向量是0x6111F12.
我卡在这里.如果你知道我应该做什么,我将不胜感激.提前致谢!
抛开由于严格的混叠违规而导致的所有未定义行为,在当前的Intel芯片和MSVC运行时,所有指针都是48位.
所以,0xffeeddccbbaa5577是从来没有一个有效的指针值.
因此,取消引用该值的行为将是未定义的.
如果你想分手data,到合适的类型的四个要素,再一个方法是创建一个uint16_t foo[4]发言权,并memcpy开始在数据&data来foo.
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |