请各位高手指教!
来源:互联网 发布:软件测试手册怎么写 编辑:程序博客网 时间:2024/04/27 01:48
我在编写OS的PCB时出现的一个小问题:
void ReadPCB(PCB pcb[])
{
FILE *fp;
if((fp=fopen("pcb.dat","rb"))!=NULL)
fread(pcb,sizeof(PCB),10,fp);
else
{
int i;
for(i=1;i<=10;i++)
pcb[i].num=-1;
}
fclose(fp);
}
void Del(PCB pcb[],int index)
{
pcb[index].num=-1;
}
int Add(PCB pcb[],SPCB pdata)
{
int i;
int result=FALSE;
for(i=1;i<=10;i++)
{
if(pcb[i].num==-1)
{
memcpy(&pcb[i],pdata,sizeof(PCB));
result=TRUE;
break;
}
}
return result;
}
其中pcb[i].num是一个int类型,就可以认为其值等于-1时这个pcb[i]没有用过,便可以给pcb[i]赋值.
但是假如pcb[i].num是char类型的话我可以编写pcb[i].num='0',按语法来说是没有错误的
可以运行时却出错了;提示说:
void Del(PCB pcb[],int index)
{
pcb[index].num='0';
}
中pcb[index].num必须是逻辑0或是一个非0值.
我试了好几种方法都不行.
请各位指教一下.
谢谢!!!
void ReadPCB(PCB pcb[])
{
FILE *fp;
if((fp=fopen("pcb.dat","rb"))!=NULL)
fread(pcb,sizeof(PCB),10,fp);
else
{
int i;
for(i=1;i<=10;i++)
pcb[i].num=-1;
}
fclose(fp);
}
void Del(PCB pcb[],int index)
{
pcb[index].num=-1;
}
int Add(PCB pcb[],SPCB pdata)
{
int i;
int result=FALSE;
for(i=1;i<=10;i++)
{
if(pcb[i].num==-1)
{
memcpy(&pcb[i],pdata,sizeof(PCB));
result=TRUE;
break;
}
}
return result;
}
其中pcb[i].num是一个int类型,就可以认为其值等于-1时这个pcb[i]没有用过,便可以给pcb[i]赋值.
但是假如pcb[i].num是char类型的话我可以编写pcb[i].num='0',按语法来说是没有错误的
可以运行时却出错了;提示说:
void Del(PCB pcb[],int index)
{
pcb[index].num='0';
}
中pcb[index].num必须是逻辑0或是一个非0值.
我试了好几种方法都不行.
请各位指教一下.
谢谢!!!
- 请各位高手指教!
- 请各位多多指教
- 请高手指教。
- 请高手指教!
- 请高手指教!谢谢!
- 请高手来指教
- 请高手指教
- 请各位大虾多多指教!
- 请各位大虾多多指教
- 初来乍道,请各位多多指教!
- 初来乍到,请各位前辈指教
- 请各位高手帮忙!
- 请各位高手帮帮忙
- 我有一个很头痛的问题,请各位高手指教!
- 菜鸟问题!请高手指教
- Windows编程高手请指教!
- 关于list请高手指教
- 找错误!!请高手指教!
- 我在RH9下安装Oracle8.1.7经历
- 用PHP开发GUI(一个简单的例子)
- 浙江师范大学实验室开放项目《应用水晶报表快速开发数据库管理系统》进度表
- 浙江师范大学实验室开放项目《应用水晶报表快速开发数据库管理系统》学生名单登记表(给学分名单)
- How to see the world?
- 请各位高手指教!
- 又见加班
- ping 命令工作原理详细解析
- java学习笔记5--Hiding implementation
- 有趣的定律4. 彼德原理
- 操作系统实验--同步互斥
- 2004.11.26,Fri - 双选会
- Review of Debugging the development process 4. Unbridled Enthusiasm
- UML工具推荐 Poseidon版本 可以免费下载,自动生成代码 C++ Java C# VB.NET等 (来自德国汉堡的国际性建模软件开发商Gentleware AG的)