咕咕咕咕7 2023-06-01 11:21 采纳率: 100%
浏览 14
已结题

为什么操作系统区别对待变量与指针

在定义变量的时候,为什么
int x;
会被分配一块有效内存,但是
int *x;
只会被随机分配一块内存地址变成野指针
分配地址为什么是不一样的。

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-06-01 11:35
    关注

    int * x同样分配一个有效内存,只不过这个内存存储的是一个地址信息而已
    为什么是野指针,是因为这个地址信息是个不确定的值,取决于上一个占用这个内存空间的程序在内存里写的是什么。显然这个值你现在的程序无法预测,且这个值会被作为一个地址看待,那么这个地址当前程序并没有申请占用,所以要么这个地址是禁止访问的,要么这个地址被别的程序占用。你强行去访问就出问题了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 6月1日