首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

InValid pointer operation的有关问题

2012-03-16 
InValid pointer operation的问题我写了一个模拟文件系统的函数在DOS上就用不出错,在C++BUILDER写界面时,

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; 这句可能要出问题啊。

热点排行