| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1102 人关注过本帖
标题:内存操作错误!
只看楼主 加入收藏
落在秋天的叶
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2008-6-21
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:8 
内存操作错误!
#include "stdio.h"
#define ARR_LEN 199
int main(void)
{
    int array[ ARR_LEN ];
    int count = 0,temp,value;
    int i,j;

    printf("请输入一个数:");
    scanf("%d",&value);
    for(i = 0;i< ARR_LEN;i++)
        array[i] = -1;
      array[i] = 1;
     for(j = 2;j <= value;j ++)
     {   
        while(array[i] !=-1 || count != 0)
        {            
           if(array[i] != -1)
           {
               temp = array[i];
               array[i] = (array[i] * j +count) % 10;
               count = (temp * j +count) / 10;
               i --;

           }
           else
           {
              if( count != 0)
              {
                  array[i] = count % 10;
                  count = count / 10;
                  i--;
              }
           }
        }
        i = ARR_LEN;
        count = 0;
     }
     for(i = 0;i<= ARR_LEN; i ++)
     {
         if(array[i] != -1)
         printf("%d",array[i]);
     }
     printf("\n");   
 return 0;
}
一个简单的大数阶乘问题,程序运行结束会出现内存错误,请高手指点~~
搜索更多相关主题的帖子: 内存 
2010-10-01 17:24
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:1 
会出现这种错肯定是数组越界了

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-01 20:21
Spygg
Rank: 5Rank: 5
等 级:职业侠客
帖 子:135
专家分:394
注 册:2007-5-20
收藏
得分:1 
for(i = 0;i< ARR_LEN;i++)
        array[i] = -1;
      array[i] = 1;//这句有问题,执行结果array[199]=1;
2010-10-01 22:03
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:1 
LS的名字居然与我如此之像.

飘过~~
2010-10-01 22:07
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:1 
for(i = 0;i< ARR_LEN;i++)
        array[i] = -1;
      array[i] = 1;
在这里你的i已指向数组尾了吧,不需要重置i吗?
如i=0;?
没细看,应该在这吧,后面好像看到用到了数组array
     for(j = 2;j <= value;j ++)
     {   
        while(array[i] !=-1 || count != 0)    这里用到了i
        {            
           if(array[i] != -1)
           {
               temp = array[i];
               array[i] = (array[i] * j +count) % 10;
               count = (temp * j +count) / 10;
               i --;

           }
           else
           {
              if( count != 0)
              {
                  array[i] = count % 10;
                  count = count / 10;
                  i--;
              }
           }
        }
        i = ARR_LEN;
        count = 0;
     }
2010-10-01 22:09
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
收藏
得分:1 
       数组一个很重要的问题就是越界问题。

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-10-02 21:06
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
6搂的广告在这里没用的

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-02 21:23
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
原来6楼的广告已删,原7楼变成了现6楼

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-02 21:25
落在秋天的叶
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2008-6-21
收藏
得分:0 
数组越界,错误已找到~谢谢各位的回答~
2010-10-04 15:29
快速回复:内存操作错误!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013007 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved