InValid pointer operation的问题
我写了一个模拟文件系统的函数
在DOS上就用不出错,在C++BUILDER写界面时,就出现了指针无效
MFDLink L;
UFDLink LUFD=NULL;
FCBLink pf=NULL; //先初始化为零,在判断是否打开文件时用到
上面三个是全属的指针
void IninFileSystem(MFDLink &L,UFDLink &pu,FCBLink &pf)
{//初始化系统链表
String TempName;
String TempCon;//文件的临时内容
TempCon= "12 ";
for (int i=1;i <=3;++i)
{
TempName= "用户名 "+IntToStr(i);
InputMFD(L,TempName); //这个是加入用户名
LoginMFD(L,TempName,pu);//登陆用户
for(int j=1;j <=1;++j)
{
TempName= "文件 "+IntToStr(j);
InputUFD(pu,TempName,0); //加入文件
OpenFCB(pu,TempName,pf); //打开文件
pf-> Con=TempCon; 在这一句就出现了指针无效,但是PF-> CON里的内容 写 了进去了
}
}
}
我的结构体如下
typedef struct FCB
{
String Con; //文件的内容
int type;
}FCBNode,*FCBLink;
typedef struct UFD //普通文件的目录项
{
String FileName; //文件名
int type; //文件类型,0为只读,1为可读可写
int len; //文件长度
int FolderFlag; //看是否是文件夹,当为1是文件夹,当为0时是文件
struct UFD *next;
struct MFD *nextMChild; //文件夹链表
struct FCB *nextchild;
}UFDNode,*UFDLink;
typedef struct MFD //目录文件的目录,是用户结构的结构体
{
String UserName;
struct MFD *next;
struct UFD *nextchild;
}MFDNode,*MFDLink;
[解决办法]
你只是pf=NULL,
但没看到你在哪里new创建,所以没有分配空间 pf-> Con=TempCon; 这句可能要出问题啊。
[解决办法]
你只是pf=NULL,
但没看到你在哪里new创建,所以没有分配空间 pf-> Con=TempCon; 这句可能要出问题啊。