哪里出现错误。。
#include <stdio.h>void main()
{
int i;
int k;
int data;
if( i<= 12)
{
for(k=i-1; k >=i-1; k--)
{
data=data;
}
}
data = 32;
printf("data%d", &data);
}
哪里出现错误。。 首先你生成了可执行文件,可以肯定编译没有错误,for循环中当k=11时,data=data,数组下标越界是一个运行时错误,C语言编译器并不检查数组访问越界的问题,所以不会提示错误,因此用数组下标访问数组时要非常小心 这个程序整个错了,不知道你想完成什么,不过你的i没赋值,数组也没赋值,这是错误的。 名人堂_丿_帅 发表于 2013-6-13 18:23 static/image/common/back.gif
这个程序整个错了,不知道你想完成什么,不过你的i没赋值,数组也没赋值,这是错误的。
...能编译了,还说人家整个程序错了 -- 组数越界的问题吧~~! 没看出程序的目的和意义,变量你都没初始化,一般默认应该是一个很大的负数,这样你的DATA就应该不存在,C语言不是编译不出错可以生成.EXE可执行文件就是正确的,C在数据等安全性的检测上是不严格的 看到这个程序,我就想起刚学C时的似曾相识!:( 亲,你想实现啥呢????看不懂。。。。。 不就是想注释下这段代码:
Stasus ListInsert(SqList *L, int i, ElemType e)
{
int k;
if( i<1 || i>L->length+1)
{
return ERROR;
}
if( L->length==MAXSIZE)
{
return ERROR;
}
if(i<=L->length)
{
for(k=L->length-1; k>=i-1; k--) //12k=11 i=6 k=10 k=9 k=8 k=7 k=6
{
L->data=L->data; // L->data=L->data; L->data=L->data; L->data=L->data; L->data=L->data; L->data=L->data; L->data=L->data
}
}
L->data=e;
L->length++;
return OK;
} 变量初始化问题,数组越界问题
页:
[1]