C语言 数组下标越界和内存溢出区别 - C语言零基础入门教程

目录

  • [一.数组下标越界和内存溢出简介]
  • [二.数组下标越界和内存溢出区别]
  • [三.猜你喜欢]

零基础 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 字节去了,这也就是越界。

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙年行大运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值