设置一绝对地址为0x67a9的整型变量的值为0xaa66

这个嵌入式经典问题,我copy代码到VS运行却不对,大家帮我看看咋回事,顺便给我讲下理解吧,我不太理解这个地址转换,谢谢

    int* ptr;
    ptr = (int*)0x67a9;
    *ptr = 0xaa55;
    cout << *ptr << " " << ptr << endl;

错误原因是引发了异常: 写入访问权限冲突。
ptr 是 0x67A9。

随便写入的地址会出现冲突或者内存溢出的情况。

你如果随便写一个地址,那么这个地址合法,可以写入数据的概率非常低。好比一架飞机飞得好好的,冲向地面,降落在机场的概率几乎为0。

int* ptr;
    int temp = 0;
ptr = (int*)&temp;     //这样的地址是合法的
*ptr = 0xaa55;
cout << *ptr << " " << ptr << endl;