qq_33465534
2016-03-27 15:44
采纳率: 100%
浏览 2.2k
已采纳

c语言非法占用内存会有什么隐患?

比如我定义了一个长度为10的数组a,那么我可以利用指针的方法来,访问a[12],显然不合法,但依然不影响数据的存取?那么为什么会提出数组长度这个概念?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • threenewbee 2016-03-27 15:48
    已采纳

    看a[12]指向什么地方,可能是另一个变量,甚至可能是堆栈返回地址,如果前者,程序运行出错,不合预期,后者,甚至程序会执行莫名其妙的代码。
    所谓缓冲区溢出攻击,就是利用的这一原理,用垃圾数据覆盖掉函数的返回地址,然后跳转到另一个地方,那个地方包含恶意的代码,对计算机造成破坏。

    评论
    解决 无用
    打赏 举报
查看更多回答(4条)

相关推荐 更多相似问题