| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 388 人关注过本帖
标题:c语言的数组越界问题
只看楼主 加入收藏
孤独一生
Rank: 2
来 自:四川达县
等 级:论坛游民
帖 子:45
专家分:55
注 册:2013-4-1
结帖率:56.25%
收藏
已结贴  问题点数:10 回复次数:3 
c语言的数组越界问题
#include<stdio.h>
int main()
{
int a[2]={0,1};
int b[10];
b[10]=3;
printf("b[10]=%d\n",b[10]);
printf("a[0]=%d\n",a[0]);
return 0;
}
输出结果:
b[10]=3
a[0]=3

b=[10]=3;越界怎么覆盖了a[0]=0;啊,按理说a[0]=0,可是a[0]=3了 需要详细解释 原理
搜索更多相关主题的帖子: c语言 return return c语言 
2014-07-13 23:04
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:7 
图片附件: 游客没有浏览图片的权限,请 登录注册

有图有真相

坚持----------------------------------唯一的道路
shit ! ! !
2014-07-13 23:13
adeliney
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-7-15
收藏
得分:0 
int b[10]=3;越界了吧
2014-07-15 13:46
kaboul
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-8-4
收藏
得分:0 
#include <stdio.h>

int main(int argc,char * argv[])
{
    int a[2] = {0,1};
    int b[10];

    b[10] = 3;

    printf("a[0] addr:%p\r\n",&a[0]);
    printf("a[1] addr:%p\r\n",&a[1]);
    printf("b[0] addr:%p\r\n",&b[0]);
    printf("b[1] addr:%p\r\n",&b[1]);
    printf("b[2] addr:%p\r\n",&b[2]);
    printf("b[3] addr:%p\r\n",&b[3]);
    printf("b[4] addr:%p\r\n",&b[4]);
    printf("b[5] addr:%p\r\n",&b[5]);
    printf("b[6] addr:%p\r\n",&b[6]);
    printf("b[7] addr:%p\r\n",&b[7]);
    printf("b[8] addr:%p\r\n",&b[8]);
    printf("b[9] addr:%p\r\n",&b[9]);

    printf("b[10]:%d\r\n",b[10]);
    printf("a[0]:%d\r\n",a[0]);
}
自己可以观察下数组的内存分配。
2014-07-15 20:59
快速回复:c语言的数组越界问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020443 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved