2014-10-12 81 views
0

我是C++的初学者。我正在尝试调用函数时发生未处理异常application.exe中的0x0872340b(CAN.dll)未处理的异常:0xC0000005:访问冲突读取位置0x00000000

有人可以给我一个提示吗?

+1

在这篇文章中没有任何地方可以看到'log_file'除NULL之外都是* anything *。因此,解除引用:'log_file-> vLog_Embaserror(Header,“EMBAS”);'不会结束。 – WhozCraig 2014-10-12 04:33:43

+0

@WhozCraig我已经删除NULL,仍然是相同的问题 – user3656737 2014-10-12 04:58:45

+0

呃。 **它不指向有效的对象**。只要删除'= NULL;'是不会解决这个问题的。我无法想象一种方式,我可以说任何简单的方法,如果还不清楚,你需要回顾一下C++中的指针是如何工作的。 – WhozCraig 2014-10-12 05:01:48

回答

2

您的代码不显示赋值给变量。 'LOG_FILE'。但函数config_print_error将这个指针解除引用。这匹配了异常argumemt 0x00000000。如果您的代码示例不完整,您应该在映射文件中查找异常地址0x278440b。

0

在CAN.cpp中,您声明了一个CBaseLogObject指针并将其设置为null,然后尝试访问它。这就是所谓的空指针异常。

相关问题