📌  相关文章
📜  C / C++中的NULL未声明错误及其解决方法

📅  最后修改于: 2021-05-28 04:56:00             🧑  作者: Mango

什么是未声明的错误:
当我们在程序中使用某些常量时,它们可能是内置常量,可以由用户根据要求创建。但是,当我们使用某些常量并且它们不是内置的,并且在这种情况下也不由用户定义时,我们会得到未声明的错误。

下面的代码显示了NULL未声明错误的示例:

using namespace std;
  
// Driver Code
int main()
{
    // NULL declared
    int* num = NULL;
    return 0;
}

上面的代码将显示错误,显示为“ NULL undeclared Error” 。 NULL未声明错误的原因是“ NULL”不是内置常量。

为什么我们需要NULL?
当我们在程序中创建一些指针时,它们将用于存储地址。但是未初始化的指针变量非常危险,因此我们可以为它们分配NULL ,这意味着它们没有指向任何内存位置,因此我们的程序可以平稳安全地运行。
现在,如果NULL不是内置常量,我们如何克服NULL未声明的错误。

以下是一些用于删除NULL未声明错误的代码:

  1. 分配0:我们可以简单地分配0来指示它没有指向任何地址,而不是给num分配NULL ,因此最简单的解决方案是简单地分配0。
    下面的代码显示了它的实现:
    using namespace std;
      
    // Driver Code
    int main()
    {
        int* num = 0;
        return 0;
    }
    
  2. 包含“ stddef.h”头文件:stddef.h头文件中,已经定义了NULL,因此我们可以在程序中包含该头文件,并且程序将编译并执行而没有任何错误。
    下面的代码显示了它的实现:
    #include 
      
    // Driver Code
    int main()
    {
        int* num = NULL;
        return 0;
    }
    
  3. 包括iostream头文件:在C++中,如果我们要执行程序而没有NULL无法处理的错误,我们可以简单地将iostream包含在程序中,并使它发生而没有任何错误。
    下面的代码显示了它的实现:
    #include 
    using namespace std;
      
    // Driver Code
    int main()
    {
        int* num = NULL;
        return 0;
    }
    
  4. #define NULL 0:使用#define NULL 0行在我们的程序中,我们可以解决NULL未声明的错误。
    下面的代码显示了它的实现:
    #define NULL 0
    using namespace std;
      
    // Driver Code
    int main()
    {
        int* num = NULL;
        return 0;
    }
    
  5. 在较新的C++(C++ 11和更高版本)中:: nullptr是一个内置常量,因此我们可以使用它代替使用NULL。
    #include 
    using namespace std;
      
    // Driver Code
    int main()
    {
        int* num = nullptr;
        return 0;
    }
    
    想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”