【发布时间】:2022-07-30 15:10:21
【问题描述】:
我有一个 c++ 程序,其中有一个整数变量 a,它存储在内存位置 0x16f29782c。现在如果我想将相同的内存分配给一个int指针ptr,我可以访问相同的变量吗?
代码
#include <iostream>
using namespace std;
int main(){
int * ptr, i=10;
ptr = (int *) 0x16f29782c;
cout<<ptr<<endl;
cout<<*ptr<<endl;
return 0;
}
输出
User% g++ test.cpp
User% ./a.out
0x16f29782c
zsh: segmentation fault ./a.out
为什么会这样?
【问题讨论】:
-
因为操作系统不认为您拥有该位置的内存。你从哪里得到的地址?
-
恕我直言,无法以您理解的方式回答该问题。考虑阅读good book。