鱼C论坛

 找回密码
 立即注册
查看: 4074|回复: 9

哪里出现错误。。

[复制链接]
发表于 2013-6-13 17:59:34 | 显示全部楼层 |阅读模式

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

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

x
  1. #include <stdio.h>

  2. void main()
  3. {

  4. int i;
  5. int k;
  6. int data[12];
  7. if( i<= 12)
  8. {
  9. for(k=i-1; k >=i-1; k--)
  10. {
  11. data[k+1]=data[k];
  12. }
  13. }

  14. data[i-1] = 32;
  15. printf("data[i]%d", &data[5]);
  16. }
复制代码

QQ截图20130613175952.png 哪里出现错误。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-13 18:22:54 | 显示全部楼层
首先你生成了可执行文件,可以肯定编译没有错误,for循环中当k=11时,data[k+1]=data[k],数组下标越界是一个运行时错误,C语言编译器并不检查数组访问越界的问题,所以不会提示错误,因此用数组下标访问数组时要非常小心
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 18:23:02 | 显示全部楼层
这个程序整个错了,不知道你想完成什么,不过你的i没赋值,数组也没赋值,这是错误的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 18:27:35 | 显示全部楼层

...能编译了,还说人家整个程序错了 --
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 18:36:04 | 显示全部楼层
组数越界的问题吧~~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 18:38:04 | 显示全部楼层
没看出程序的目的和意义,变量你都没初始化,一般默认应该是一个很大的负数,这样你的DATA[k]就应该不存在,C语言不是编译不出错可以生成.EXE可执行文件就是正确的,C在数据等安全性的检测上是不严格的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 19:05:11 | 显示全部楼层
看到这个程序,我就想起刚学C时的似曾相识!:(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 19:57:49 | 显示全部楼层
亲,你想实现啥呢????看不懂。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-13 21:32:36 | 显示全部楼层
不就是想注释下这段代码:

  1. Stasus ListInsert(SqList *L, int i, ElemType e)
  2. {
  3.         int k;
  4.         if( i<1 || i>L->length+1)
  5.         {
  6.                 return ERROR;
  7.         }
  8.         if( L->length==MAXSIZE)
  9.         {
  10.                 return ERROR;
  11.         }
  12.         if(i<=L->length)
  13.         {
  14.                 for(k=L->length-1; k>=i-1; k--)         //12  k=11 i=6 k=10 k=9 k=8 k=7 k=6
  15.                 {
  16.                         L->data[k+1]=L->data[k];                // L->data[12]=L->data[11]; L->data[11]=L->data[10]; L->data[10]=L->data[9]; L->data[9]=L->data[8]; L->data[8]=L->data[7]; L->data[7]=L->data[6]
  17.                 }
  18.         }
  19.         L->data[i-1]=e;
  20.         L->length++;
  21.        
  22.         return OK;
  23.        
  24. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-13 21:37:10 | 显示全部楼层
变量初始化问题,数组越界问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 20:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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