开发者社区> 问答> 正文

C语言数组下标越界和内存溢出区别?

C语言数组下标越界和内存溢出区别?

展开
收起
游客gaiketk6mpmke 2022-03-29 17:31:21 632 0
1 条回答
写回答
取消 提交回答
  • 1、溢出是把大的东西往小的东西里装造成的,会造成程序逻辑异常,但一般不会 abort。

    比如一个计时器,最大计 100s 的时,你让他跑了120秒,它就溢出了。

    比如一个两个 char ,一个 200 ,一个也是 200 ,相加,结果也就溢出,因为 char 最大就 255.

    2、越界是访问或者使用到不属于它的地方,会造成 abort ,甚至死机。

    比如 C 语言数组 int a[3],明明只有 3 个元素,你用 a[3],这就越界了;

    比如你申请了 100 字节的内存,但你写的时候写到 101 字节去了,这也就是越界。

    2022-03-29 18:16:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
低代码开发师(初级)实战教程 立即下载