具有运行使用Microsoft Visual C编译时++ 2008 Express的上线调试新时被称为
comparison_vectors = new vec_element[(rbfnetparams->comparison_vector_length)+1];
与MYPROG.EXE在0x7c93426d错误未处理的异常崩溃的程序奇怪的错误:0000005:访问冲突阅读位置00000000
rbfnetparams->comparison_vector_length
计算结果为4(应该做的,并在调试器中检查),而且当我改变行作为测试的东西仍然崩溃的位置:
comparison_vectors = new vec_element[5];
vec_element
是一个有几个整数,双打和几个布尔的结构,但没有方法或构造函数。如果我用malloc替换new,然后在另一个新的地方崩溃,这个事情就会运行。它每次运行时都不会崩溃,只是有时会出现这种情况,但似乎每次执行相同次数的迭代后都会崩溃。内存使用量在这个程序中只有10MB。
这会变得很陌生,因为同一个程序在Solaris上编译和运行在gcc下,通常显示的错误远远多于Windows。
任何帮助将不胜感激,因为我在如何调试这一个损失。
这听起来像是一个堆腐败问题给我。你有没有尝试在valgrind下运行该程序? – JaredPar 2012-04-19 18:43:49
...或者在VS本身下运行Debug版本,这通常会很快出现堆问题。问题可能不在这条线上,但更早。 – 2012-04-19 18:46:05
如果他在Windows上,这将无法工作 - 不适用于Windows的Valgrind端口。也就是说,如果他的代码可以在* nix系统上编译,他可以检查,但是如果他使用的是Windows约定(如果跨平台不存在,这很有可能),那么他将会不幸运。 – RageD 2012-04-19 18:46:32