免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1752 | 回复: 9
打印 上一主题 下一主题

段错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-26 22:25 |只看该作者 |倒序浏览
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M  3           //define ResouceSetNumber=3
#define N  5           //define ProcessNumber=5
int   R[3]={10,5,7};       //define ResouceInstanceNumber
typedef struct Process{
     int   Max[N][M];
     int   Allocation[N][M];
     int   Need[N][M];     int   Request[N][M];
   }table;
int   main(void)
{
   table t;
   int   Available[M],sum;
   int   i,j;
   srand((int)time(0));
   for(i=0;i<N;i++)
    for(j=0;j<M;j++)
    {            
    t.Max[j]=1+rand()%(R[j]+1);
    }
   for(i=0;i<N;i++)   
    for(j=0;i<M;j++)     
    {      
       t.Allocation[j]=rand()%(t.Max[j]+1);  //段错误
     t.Need[j]=rand()%(t.Max[j]+1);        //段错误
    }
   for(i=0;i<N;i++)
     for(j=0;j<M;j++)
     {
       if(t.Allocation[j]<t.Need[j])
         t.Request[j]=t.Need[j]-t.Allocation[j];
     }
   for(j=0;j<M;j++)
    {   
       for(i=0;i<N;i++)
       sum+= t.Allocation[j];  
       if(sum<R[j])      
       Available[j]=R[j]-sum;     
    }
   return 0;
}


请问以下各位大侠 编译后无错
运行时  在程序指定的行发生段错误
怎么解决


[ 本帖最后由 kuluwang 于 2008-11-26 22:28 编辑 ]

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
2 [报告]
发表于 2008-11-26 23:51 |只看该作者
t.Max[j]=1+rand()%(R[j]+1);
..
t.Request[j]=t.Need[j]-t.Allocation[j];

你编译通过了吗

论坛徽章:
0
3 [报告]
发表于 2008-11-27 10:01 |只看该作者
for(i=0;i<N;i++)   
    for(j=0;i<M;j++)     
    {      
       t.Allocation[j]=rand()%(t.Max[j]+1);  //段错误
     t.Need[j]=rand()%(t.Max[j]+1);        //段错误
    }

有i的什么事啊?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2008-11-27 11:07 |只看该作者

回复 #1 kuluwang 的帖子

代码用 [code][/code] 括起来。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2008-11-27 11:29 |只看该作者
原帖由 eveson 于 2008-11-27 10:01 发表
for(i=0;i
  1. t.xxx[j] 之类的好像都是 t.xxx[i][j]
复制代码

论坛徽章:
0
6 [报告]
发表于 2008-11-27 12:21 |只看该作者

回复 #3 eveson 的帖子

发表的时候  是t.max[j]   不知道怎么看不到那个i 部分

论坛徽章:
0
7 [报告]
发表于 2008-11-27 12:22 |只看该作者

回复 #2 ynchnluiti 的帖子

编译的时候 通过了啊

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
8 [报告]
发表于 2008-11-27 12:44 |只看该作者
原帖由 kuluwang 于 2008-11-27 12:21 发表
发表的时候  是t.max[j]   不知道怎么看不到那个i 部分

嗯。不用[code][/code],代码中的[ i ]显示不出来

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
9 [报告]
发表于 2008-11-27 12:56 |只看该作者
原帖由 eveson 于 2008-11-27 10:01 发表
有i的什么事啊?

eveson已经说了。for(j=0;i<M;j++)这句写错了。

论坛徽章:
0
10 [报告]
发表于 2008-11-27 17:56 |只看该作者

回复 #9 ynchnluiti 的帖子

没注意 谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP