c++ - 如何在 C++ Visual 2010 中检查指针是否为空

标签 c++ pointers

如果我想检查 eerste 是否指向我得到的任何内容,我会遇到问题

Blockquote

Unhandled exception at 0x003921c6 in Bank.exe: 0xC0000005: Access violation reading location 0xccccccd0.

我有点想知道为什么他只是跳过 if 语句或者在对象 eerste 指向任何内容时不停止

Bank::Bank()
{
 LijstElement *eerste = NULL;
 LijstElement *laatste = NULL;
}

 Rekening * Bank::getRekening(int rekNr)
{

 if(NULL != eerste)
 {
  LijstElement *nummer = eerste;
  while(nummer->volgende!= NULL)
  {
   Rekening *een = nummer->getRekening();
   if(een->getRekNr()==rekNr)
    {
     return een;
    }
   else
   {
    nummer = nummer->volgende;
   }
  }
 }
 return NULL;   
}

最佳答案

我认为你必须改变

Bank::Bank()
{
    eerste = NULL;
    laatste = NULL;
}

因为它们可能在您的类中声明为成员变量,而您将它们声明为局部变量。

正如 Fred Larson 所建议的,您还可以使用初始化列表。

Bank::Bank() : eerste(NULL), laatste(NULL)  
{
//whatever else you are planning to do in your constructor
}

关于c++ - 如何在 C++ Visual 2010 中检查指针是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469931/

相关文章:

具有模板化类型结构问题的 C++ 函数模板参数

c++ - 我如何强制客户端调用显式专用模板而不是主模板?

c++ - 双冒号前的 clang 格式中断

ios - 在 Objective-C 中使用 NSLog 时取消引用指针

c - 使用指针数组时出现段错误

c++ - header 和未解析的外部符号

c++ - 模板元编程 : multiplying a bunch of template arguments

copy_to_user 一个包含数组(指针)的结构

C多维数组堆赋值

c++ - C++中的字符指针