ASSERT(m_pchData != NULL)错误

诶呦 2011-08-01 10:47:43
_AFX_INLINE CStringData* CString::GetData() const
{ ASSERT(m_pchData != NULL); return ((CStringData*)m_pchData)-1; }
不知道哪里错了,会出现这个错误。

当我在Dlg类中添加变量int nHeight1;int nWidth1;时程序一切正常没有问题,然后在添加变量int nHeight2;int nWidth2;,程序可以运行,但是在结束时会出现上面的问题。

如果我在dlg.CPP开头把变量声明成全局变量就没有这个错误,请问这是什么原因。
...全文
283 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
诶呦 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lazy_2010 的回复:]
怀疑你跨线程使用 CString ,或者其它问题;要想人帮你,还是上代码吧
[/Quote]

代码太长了,关键是我不知道哪一部分的问题……
我换了一种方法就把它解决了。
三文鱼也会飞 2011-08-01
  • 打赏
  • 举报
回复
CString分配了CStringData和实际数据空间,但只用了一个指针m_pchData来记录,访问CStringData时是通过m_pchData-1来访问的。
诶呦 2011-08-01
  • 打赏
  • 举报
回复
程序我找了另外一种方法实现了,但是我还是想知道这个原因是为什么。
求大侠带……
诶呦 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lazy_2010 的回复:]
写错了,是学习如何看 callstack
[/Quote]

好的,我去看看
诶呦 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luciferisnotsatan 的回复:]
ASSERT(m_pchData != NULL);这个断言不过和你那几个变量没关系吧
[/Quote]

我在Dlg类中添加变量int nHeight1;int nWidth1;
然后int nHeight2;int nWidth2;只能声明成全局变量

郁闷
lazy_2010 2011-08-01
  • 打赏
  • 举报
回复
写错了,是学习如何看 callstack
lazy_2010 2011-08-01
  • 打赏
  • 举报
回复
学习如果看 callstack 吧
luciferisnotsatan 2011-08-01
  • 打赏
  • 举报
回复
ASSERT(m_pchData != NULL);这个断言不过和你那几个变量没关系吧
诶呦 2011-08-01
  • 打赏
  • 举报
回复
在线等啊……
诶呦 2011-08-01
  • 打赏
  • 举报
回复
UP~
healer_kx 2011-08-01
  • 打赏
  • 举报
回复
这不能说明任何问题。。。
lazy_2010 2011-08-01
  • 打赏
  • 举报
回复
怀疑你跨线程使用 CString ,或者其它问题;要想人帮你,还是上代码吧
诶呦 2011-08-01
  • 打赏
  • 举报
回复
自己顶一个
elated 2011-08-01
  • 打赏
  • 举报
回复
这里触发了这个断言,在不应为NULL的指针处为NULL了,这也看不出有啥问题嘛。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧