声明了一个指针类成员,在一个成员函数里new了一片内存,赋给这个指针。在另一成员函数里再次调用这个指针成员,去操作刚才new的内存,如何实现。
myclass.h
private:
 char *m_para;myclass.cpp
OnDbClicked1()
{
  m_para=new char[100];
  }
OnDbClicked2()
{
  char tem=m_para[i];
}

解决方案 »

  1.   

    既然是char* m_para是类的成员变量,在类的成员函数中直接使用就可以!
      

  2.   

    myclass.h
    public:
     char *m_para;myclass.cpp
    OnDbClicked1()
    {
      m_para=new char[100];
      }
    OnDbClicked2()
    {
      char tem=pobj->m_para[i];
    }//pobj为上面那个类的指针
      

  3.   

    但我的程序里不是这样的:
    source.h
     typedef struct FILESTR
    {
      CString file;
      FILESTR *next;
      }
    myclass.h
    #include <source.h>private:
     FILESTR *m_para;myclass.cpp
    OnDbClicked1()
    {
      while(filenotempty)
      {
        m_para=new FILESTR;
        m_para->file=...;
        m_para=m_para->next;
       }
    ......
    }
    OnDbClicked2()
    {
      FILESTR *tem=m_para->next;//运行至此处m_para地址为oxcdcdcdcd 已经无效了
    }
    还请指教。
      

  4.   

    clicked1最后已经把指针移动到最后了变成null了,你的clicked2,赋值时当然不行了。呀
      

  5.   

    to cryptonym(挣钱买房娶老婆):
    哦 不 我忘写了:
      HEAD=m_para;
     OnDbClicked2()
    {
      FILESTR *tem=HEAD->next;//运行至此处HEAD地址为oxcdcdcdcd 已经无效了
    }
    HEAD保存了首地址;怎么办啊
      

  6.   

    上面写错了:
    FILESTR *HEAD;
    程序中全部用HEAD执行操作,m_para保存首地址,没在程序中使用。