谁来帮帮忙啊~~~~新手问题~~~~

glasswm 2007-04-21 11:17:57
准备编个关于进程调度的程序,现在才写到根据进程优先级建立链表,就写不下去了

下面的程序编译的时候会出现
Run-Time Check Failure #3 - The variable 'p' is being used without being defined.
哪位大哥指点指点啊,先谢过啦。。。还有我感觉自己写的P[0]-P[5]的初始化太麻烦了,有更简捷的方法做到同样的效果吗?

在线等


#include "stdafx.h"
#define error 0
#define OK 1
#define NULL 0
enum process_state{W,R,F};
typedef struct PCBNode
{
char name;
int priority;
int arrive;
int demand;
int use;
process_state state;
}PCBNode,*pcb;

typedef struct PNode
{
pcb process;
struct PNode *next;
}PNode,*pcblist;

int pcblistinsert(pcblist &L,pcb e)
{
pcblist p,s;
p=L;
pcb m;
m=e;
while (p &&m->priority < p->process->priority)
{
p=p->next;
}
if (!p) return error;
s=(pcblist)malloc(sizeof(pcblist));
s->process=e;
s->next=p->next;
p->next=s;
return OK;
}

int main()
{
pcblist L;
pcb p[5];
p[0]->name='a';p[0]->priority=10;p[0]->arrive=6;p[0]->demand=10;p[0]->use=0;p[0]->state=W;
p[1]->name='b';p[1]->priority=7;p[1]->arrive=3;p[1]->demand=7;p[1]->use=0;p[1]->state=W;
p[2]->name='c';p[2]->priority=3;p[2]->arrive=2;p[2]->demand=4;p[2]->use=0;p[2]->state=W;
p[3]->name='d';p[3]->priority=5;p[3]->arrive=5;p[3]->demand=6;p[3]->use=0;p[3]->state=W;
p[4]->name='e';p[4]->priority=6;p[4]->arrive=7;p[4]->demand=2;p[4]->use=0;p[4]->state=W;

//{{'a',10,6,10,0,W},{'b',7,3,7,0,W},{'c',3,2,4,0,W},{'d',5,5,6,0,W},{'e',6,7,2,0,W}};
L->process=p[0];
L->next=NULL;
int i;
for (i=0;i<5;i++)
pcblistinsert(L,p[i]);
return 0;
}
...全文
184 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2007-04-22
  • 打赏
  • 举报
回复
pcblist L;
这里pcblist是一个指针类型,你的L没有分配内存。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧