A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2014571245 中级黑马   /  2014-4-26 13:48  /  1517 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 2014571245 于 2014-4-27 10:49 编辑

请问下面程序有什么错误?
   int a[60][250][1000],i,j,k;
   for(k=0;k<=1000;k++)
    for(j=0;j<250;j++)
     for(i=0;i<60;i++)
      a[j][k]=0;
我看了半天,也没有觉得有声明错误啊,谁能指点下?

5 个回复

倒序浏览
int a[60][250][1000],i,j,k;
   for(k=0;k<=1000;k++)//这个地方应该是 k<1000 吧
    for(j=0;j<250;j++)
     for(i=0;i<60;i++)
      a[i][j][k]=0;

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
我感觉是电脑分不出那么多内存给你了
这样写就运行得了

int main(void){
  int a[60][250][10],i,j,k;
   for(k=0;k<=10;k++)
    for(j=0;j<250;j++)
     for(i=0;i<60;i++)
      a[i][j][k]=0;
return 0;
}
回复 使用道具 举报
兰闻天 发表于 2014-4-26 14:06
int a[60][250][1000],i,j,k;
   for(k=0;k

不只这一个简单的错误
回复 使用道具 举报
  1.     int a[60][250][1000],i,j,k;
  2.     for(k=0;k<=1000;k++)
  3.         for(j=0;j<250;j++)
  4.             for(i=0;i<60;i++)
  5.                 a[i][j][k]=0;
  6.     // 有一个错误 for(k=0;k<=1000;k++)这句话应该改为for(k=0;k<1000;k++),不然会数组越界。
  7.     // 但是就算你改为1000了,你这程序可能也运行不了。编译器给你分配不了那么大的内存给你的这个数组。
  8.     // 60 * 250 * 1000 * 4 = 47M!!
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
首先 "for(k=0;k<=1000;k++)" --> k不能等于1000;
然后 ,如果想有整个数组赋值成0 --》
可以在声明时 int a[60][25][1000]={};

再然后 int a[60][250][1000] --->  xcode 可以编译,但运行不了,可能太大了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马