我正在尝试创建一个指向用户给定的内存地址的指针,但我遇到了问题。我实际上设法创建指针并打印其地址,但我从未成功打印或更改其内容。有没有好心人解释一下为什么?
这是我试图运行的代码:
int m = 10;
printf("&m = %d (address in dec.)\n", &m);
printf("Enter an address: ");
int address;
scanf("%d", &address);
int* p = (int*) address;
printf("p = %d (address in dec.)\n", p);
printf("*p = %d (value)\n", *p);
Run Code Online (Sandbox Code Playgroud)
这是我与程序交互的控制台:
&m = 1220033252 (address in dec.)
Enter an address: 1220033252
p = 1220033252 (address in dec.)
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用与 &m 不同的地址,也会发生同样的事情。
谢谢!