这什么情况啊?求大神解释下。。。谢谢啦
1个回答
展开全部
这个是你违反了MFC实现中必须的调试,由系统提示的断言,解决办法:
1.如果可以带源程序调试,这个问题就比较好解决了,直接打开调用堆栈,查找到源代码位置,就可以了。
2.如果没有源代码,则需要想其他的办法输出调用堆栈的内容,然后确定出错函数的准确位置。
3.还可以使用别人提供的一种方式,根据内存错误提示的位置,来分析程序。
这个多半是因为你的字符串用的不对,比如没有初始化等导致的。由于问题是在VC库中报告的,所以你不太容易跟进去,就算跟进去也看不出所以然来。这种问题的一般解决方法如下:在你自己程序里可能有问题的地方之前设置断点(如果你不知道哪边出的问题就要多试几次,二分法搜索的思想不用我多说吧),然后一步步向后运行,肯定在运行你源程序的某一句时出现了该问题。那么就仔细分析这一句,是不是有变量没分配内存就用了,是不是内存越界了,实在看不出来用别的语句代替试试了。。。一般都能解决问题。
1.如果可以带源程序调试,这个问题就比较好解决了,直接打开调用堆栈,查找到源代码位置,就可以了。
2.如果没有源代码,则需要想其他的办法输出调用堆栈的内容,然后确定出错函数的准确位置。
3.还可以使用别人提供的一种方式,根据内存错误提示的位置,来分析程序。
这个多半是因为你的字符串用的不对,比如没有初始化等导致的。由于问题是在VC库中报告的,所以你不太容易跟进去,就算跟进去也看不出所以然来。这种问题的一般解决方法如下:在你自己程序里可能有问题的地方之前设置断点(如果你不知道哪边出的问题就要多试几次,二分法搜索的思想不用我多说吧),然后一步步向后运行,肯定在运行你源程序的某一句时出现了该问题。那么就仔细分析这一句,是不是有变量没分配内存就用了,是不是内存越界了,实在看不出来用别的语句代替试试了。。。一般都能解决问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询