C ++:调试断言失败,afx.inl第122行

时间:2016-06-29 03:38:15

标签: c++ visual-studio visual-c++

这是问题的描述。

我定义了以下类..

class classA {
public:
  CString aString;
};
extern classA theApp;

在另一个类函数中,我这样做

theApp.aString = "test string";

然后我得到运行时错误调试断言失败,afx.inl第122行; 请指教。

我也尝试在类中进行分配,但它无法标记相同的运行时错误。

 class classA {
    public:
      CString aString;
      void set_string()
      {
          aString = "test string 2";
      }
    };
    extern classA theApp;

    //in another class function

    theApp.set_string();

visual c ++版本:VC ++ 6.0

1 个答案:

答案 0 :(得分:1)

  

afx.inl`第122行:   ASSERT(m_pchData!= NULL); return((CStringData *)m_pchData)-1; }

看来,您的theApp变量未正确初始化,因为其成员aString内部缓冲区为NULL,请检查您是否在初始化之前进行了分配。

还要确保为Visual Studio 6安装了最新的Service Pack(SP6)。