目录
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
溢出本义是算术溢出(arithmetic overflow),指算术计算结果无法在一定范围内表示,细分上溢(overflow)和下溢(underflow)。
越界即访问越界(access out of range),指对存储的访问不在预先指定的界限内。逻辑上来说可能造成访问越界的计算结果也可以看成一种溢出,这是引申义。只不过两种情况经常一起出现,所以混用了。
1、溢出是把大的东西往小的东西里装造成的,会造成程序逻辑异常,但一般不会 abort。
比如一个计时器,最大计 100s 的时,你让他跑了120秒,它就溢出了。
比如一个两个 char ,一个 200 ,一个也是 200 ,相加,结果也就溢出,因为 char 最大就 255.
2、越界是访问或者使用到不属于它的地方,会造成 abort ,甚至死机。
比如 C 语言数组 int a[3],明明只有 3 个元素,你用 a[3],这就越界了;
比如你申请了 100 字节的内存,但你写的时候写到 101 字节去了,这也就是越界。
未经允许不得转载:猿说编程 ? C 语言 数组下标越界和内存溢出区别
本文由博客 - 猿说编程 猿说编程 发布!
C语言 数组下标越界和内存溢出区别 - C语言零基础入门教程
原文:https://www.cnblogs.com/shuopython/p/15165041.html