将 head 设置为 NULL('NULL':未声明的标识符)

问题描述 投票:0回答:6

我在C++中定义了一个链表。我试图将 NULL 值设置为变量 head (在

Movie_LinkedList
的构造函数中),但我得到:

movie.h(40):错误 C2065:'NULL':未声明的标识符

请注意除了

iostream

之外我不能包含任何库

任何帮助表示赞赏!

c++ pointers null
6个回答
25
投票

如所写,

NULL
未在您的程序中定义。通常,它是在标准头文件中定义的 - 特别是
<cstddef>
<stddef.h>
。由于您仅限于
iostream
,如果您没有从该标头隐式获取
NULL
,则可以使用
0
,或者在 C++11 中使用
nullptr
,这是一个关键字,不需要一个标头。 (不建议自己定义
NULL
。有时可能有效,但技术上是非法的。)


8
投票

您应该包括

<stddef.h>
<cstddef>

但是您也可以使用

0
nullptr


4
投票

使用以下内容:

#include <stddef.h>

2
投票

无需图书馆!

在头文件顶部,

这样做:

#ifndef NULL
#define NULL (0)
#endif

1
投票

NULL
实际上并不是核心 C 或 C++ 语言的一部分;在 stddef.h 中它被定义为 0

由于您使用的是 C++,因此更喜欢

nullptr
,这是一个关键字,然后键入。 (假设它可用。它是 C++11 的一部分,因此从技术上讲,并非所有编译器都支持它;实际上,您很难找到不支持它的编译器)


0
投票

我也遇到过这种情况。所以需要添加

<string.h>
标题。


#include<string.h>

typedef struct{
 node *head;
 node *current;
 int size
}list;

void appendList(list *l, int n){
  if(l->head == NULL){
    
  }
}

int main(){
 return 0;
}

我尝试创建一个

linkedlist
,并且遇到了这个。

© www.soinside.com 2019 - 2024. All rights reserved.