频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
每日一题(43)—— 数组越界
2017-08-23 09:18:00         来源:血染风采2017  
收藏   我要投稿

下面这个程序执行后会有什么错误或者效果:

 

#define  MAX  255
int main()
{
    unsigned char A[MAX],i;

    for (i=0;i<=MAX;i++)
    {
        A[i]=i;
    }
}

解答:死循环加数组越界访问(C/C++不进行数组越界检查)

MAX=255

数组A的下标范围为:0..MAX-1,这是其一..

其二.当i循环到255时,循环内执行:

A[255]=255;

这句本身没有问题..但是返回for (i=0;i<=MAX;i++)语句时,

由于unsigned char的取值范围在(0..255),i++以后i又为0了..无限循环下去.

点击复制链接 与好友分享!回本站首页
上一篇:540. Single Element in a Sorted Array
下一篇:654. Maximum Binary Tree
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站