【发布时间】:2012-04-13 19:52:13
【问题描述】:
我正在为 FCFS 调度编写此代码。但在 Linux 中,这是给 “分段错误”。如何纠正这种错误?
#include<stdio.h>
#include<string.h>
float fxn();
int main()
{
float avgwt;
int n,i,at[10],bt[10];
printf("\n\nEnter the number of processes:");
scanf("%d",&n);
printf("\n\n BURST TIME and ARRIVAL TIME of thr process");
for(i=0;i<n;i++)
{
printf("\n ARRIVAL TIME :");
scanf("%d",&at[i]);
printf(" BURST TIME : ");
scanf("%d",&bt[i]);
}
avgwt=fxn(at,bt,n);
printf("\n\nAverage waiting time=%f",avgwt);
return 0;
}
float fxn( int at[], int bt[], int n)
{
int i,j,t,wt[n],sum,tt[n],q;
float avgwt;
for(j=i+1;j<n;j++)
{
if(at[i]>at[j])
{
t=at[i];
at[i]=at[j];
at[j]=t;
q=bt[i];
bt[i]=bt[j];
bt[j]=q;
}
}
wt[0]=0;
for(i=0;i<n;i++)
{
wt[i+1]=wt[i]+bt[i];
sum=sum+(wt[i+1]-at[i]);
}
avgwt=sum/n;
return avgwt;
}
另一个问题----我将编辑这段代码以在 linux 中进行系统调用。
如果 c 程序从用户那里获取输入并将其传递给内核进行进一步计算,那么数组的传递会起作用吗?
(例如 - 这里的 main() 函数用于将输入和 fxn() 函数带入内核
【问题讨论】:
-
这是作业吗?如果是这样,请添加 HOMEWORK 标签。您是否尝试过使用 gdb 进行调试?您是否尝试确定错误发生在哪里?
标签: c linux segmentation-fault system-calls