weixin_42048590 2022-07-21 18:12 采纳率: 100%
浏览 14
已结题

c语言指针和molloc相关问题

问题遇到的现象和发生背景

准大学生自学c语言的时候碰到的问题,我认为应该选择a,但答案为b

对于以下代码段,正确的说法是:
A.最终程序会因为没有没有空间了而退出
B.最终程序会因为向0地址写入而退出
C.程序会一直运行下去
D.程序不能被编译

问题相关代码
char *p;
while (1) {
    p = malloc(1);
    *p = 0;
}

运行结果及报错内容

我试着把这些代码在vs中运行,结果电脑死机。

我的理解

指针 p 是指向一个变量,语句 *p = 0; 应该是向所指的这块变量重复赋值,应该不会产生任何影响;而上面那句 p = malloc(1); 则是不断申请1字节的空间,一直重复下去会导致无限申请内存而死机

请求大家指点,谢谢!

  • 写回答

1条回答 默认 最新

  • De-Chang Wang 2022-07-21 19:31
    关注

    这条考得比较细节:首先,程序因为死循环会一直运行下去;然后,在不断的申请内存中导致内存耗尽;最后,申请内存失败,返回0,向该地址写入数据,产生异常,退出程序。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月22日
  • 创建了问题 7月21日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。