爱乐眼底图像分析

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6647|回复: 0

c语言数组越界

[复制链接]
发表于 2012-9-10 15:55:10 | 显示全部楼层 |阅读模式
C语言的数组必须是静态的。换而言之,数组的大小必须在程序运行前就被确定下来。

#include
void main(){
    int x[3];
    int y;
    int k;
    printf("k:%p y:%p x:%p x+1:%p x+2:%p",&k,&y,x,x+1,x+2);  //输出地址
    for(k=0;k<4;k++)
        x[k] = k;
    y = k+ 100;
    for(k=0;k<4;k++)
        printf("x[%d]=%d        ",k,x[k]);
}
运行后输出一下结果:
[url=http://img.blog.163.com/photo/LsxQGjUJOsgFWTKYFJYEkQ==/879609302221077638.jpg][/url]

程序中,访问x[3]实际上是非法的。
注意:C语言并不检验数组边界,因此,数组的两端都有可能越界而使其他变量的数据甚至程序代码被破坏。
           因此对于C语言来说,数组的边界检验是程序员的职责。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|爱乐眼底图像分析 ( 京ICP备1201155号 )        

GMT+8, 2024-12-22 00:45 , Processed in 0.045350 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表