过默 发表于 2013-6-13 17:59:34

哪里出现错误。。

#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);
}
哪里出现错误。。

楚门 发表于 2013-6-13 18:22:54

首先你生成了可执行文件,可以肯定编译没有错误,for循环中当k=11时,data=data,数组下标越界是一个运行时错误,C语言编译器并不检查数组访问越界的问题,所以不会提示错误,因此用数组下标访问数组时要非常小心

名人堂_丿_帅 发表于 2013-6-13 18:23:02

这个程序整个错了,不知道你想完成什么,不过你的i没赋值,数组也没赋值,这是错误的。

.._再_ 发表于 2013-6-13 18:27:35

名人堂_丿_帅 发表于 2013-6-13 18:23 static/image/common/back.gif
这个程序整个错了,不知道你想完成什么,不过你的i没赋值,数组也没赋值,这是错误的。

...能编译了,还说人家整个程序错了 --

☆小韦QQ 发表于 2013-6-13 18:36:04

组数越界的问题吧~~!

opqrew99 发表于 2013-6-13 18:38:04

没看出程序的目的和意义,变量你都没初始化,一般默认应该是一个很大的负数,这样你的DATA就应该不存在,C语言不是编译不出错可以生成.EXE可执行文件就是正确的,C在数据等安全性的检测上是不严格的

lsyjh 发表于 2013-6-13 19:05:11

看到这个程序,我就想起刚学C时的似曾相识!:(

Skyline 发表于 2013-6-13 19:57:49

亲,你想实现啥呢????看不懂。。。。。

过默 发表于 2013-6-13 21:32:36

不就是想注释下这段代码:
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;
       
}

故乡的风 发表于 2013-6-13 21:37:10

变量初始化问题,数组越界问题
页: [1]
查看完整版本: 哪里出现错误。。