小编A F*_*A F的帖子

创建指向给定地址的指针时出现问题

我正在尝试创建一个指向用户给定的内存地址的指针,但我遇到了问题。我实际上设法创建指针并打印其地址,但我从未成功打印或更改其内容。有没有好心人解释一下为什么?

这是我试图运行的代码:

    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 不同的地址,也会发生同样的事情。

谢谢!

c pointers memory-management segmentation-fault

0
推荐指数
1
解决办法
96
查看次数