鱼C论坛

 找回密码
 立即注册
查看: 496|回复: 3

[已解决]C,18讲

[复制链接]
发表于 2020-4-27 10:39:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
小甲鱼说这段代码中输出的是
0 1 2 3 4 5 6 7 8 9 10
可是明明输出
0 1 2 3 4 5 6 7 8 9 111

使用的是Windows系统DEV-C++

上代码——
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a[10], i;
  5.        
  6.         for (i = 0; i <= 10; i++)
  7.         {
  8.                 a[i] = i;
  9.         }
  10.        
  11.         a[10] = 111;
  12.        
  13.         for (i = 0; i <= 10; i++)
  14.         {
  15.                 printf("%d\n", a[i]);
  16.         }
  17.        
  18.         return 0;
  19. }
复制代码
最佳答案
2020-4-27 10:47:00
程序中只给a分配了10个字节的空间,若强行给它多于10个数据的话,有时候也不会报错,但是是有风险的,毕竟多出点那些数据所占的空间并没有分配给该程序,很有可能会被其他程序篡改。
具体输出会是111还是其他的什么值都不确定,也有可能是10(这个算是其他值)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 10:41:24 | 显示全部楼层
越界了,错误代码  没有研究价值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 10:42:06 | 显示全部楼层
都搞越界了,研究这个干嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 10:47:00 | 显示全部楼层    本楼为最佳答案   
程序中只给a分配了10个字节的空间,若强行给它多于10个数据的话,有时候也不会报错,但是是有风险的,毕竟多出点那些数据所占的空间并没有分配给该程序,很有可能会被其他程序篡改。
具体输出会是111还是其他的什么值都不确定,也有可能是10(这个算是其他值)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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