C++ 应用程序出现错误的应用程序名称问题
我有一个如下所示的代码C++ 应用程序出现错误的应用程序名称问题,c++,visual-studio-2005,C++,Visual Studio 2005,我有一个如下所示的代码 if ((client == NULL) || (client->type == Leave_Agent)) { if (((client == NULL)|| (client->type == Leave_Agent)) && (client->type == 0)) { 但当我用下面的代码更改它时,我在事件日志中得到了错误 修改后的代码如下所示 if ((client == NULL) || (client->type ==
if ((client == NULL) || (client->type == Leave_Agent)) {
if (((client == NULL)|| (client->type == Leave_Agent)) && (client->type == 0)) {
但当我用下面的代码更改它时,我在事件日志中得到了错误
修改后的代码如下所示
if ((client == NULL) || (client->type == Leave_Agent)) {
if (((client == NULL)|| (client->type == Leave_Agent)) && (client->type == 0)) {
事件日志中的错误为
Faulting application name: test.exe, version: 8.0.16.0, time stamp: 0x5036427e
任何一个物体都能告诉我如何修复这个,这会停止我的应用程序,并且&操作符会在C++中提出任何问题?
< p>我想你想移动(),这样你就永远不会去引用指针,如果它是空的:if ((agent == NULL)|| ((agent->type == SPUES_ntAgent) && (agent->type == 0))) {
如果代理为NULL
,则&&
的左侧将始终为true,并且将始终访问agent->type
。因此NULL
代理确保NULL
解引用
您应该更改代码,以确保只有当它不为NULL时才取消引用。问题是您可以达到此目的
agent->type == 0
当代理==NULL时
我无法在不知道您期望的行为的情况下评论如何修复。至少你应该确保
代理
没有被取消引用,如果它是==NULL
你指的是@flex?vettori提到的那一个,那就可以了:-)取消引用意味着什么,我之前遇到的问题是什么?@vettori取消引用意味着访问指针后面的内容。访问指向的对象。它成功了,但是什么是去引用,你能用一句简单的话解释一下吗,我想知道我们之前讨论的逻辑问题getting@vettori取消引用仅仅意味着拿起一个指针,看看它指向的是什么。如果指针为NULL,则这是不合法的,因此通常在这样的情况下,您会安排运算符以确保表达式的计算在其解引用可能为NULL的内容之前停止。