如何在C++ 11中将结构中的指针初始化为null?

Fat*_*oke 1 c++ pointers c++11

这是我的结构:

struct node {
    int load;
    int tolerance;
    bool has_fired;
    node *in[1];
    node *out[1];
    };
Run Code Online (Sandbox Code Playgroud)

我试过了:

node mynode;

mynode->in = null;
mynode->in = nullptr;
mynode->in = &nullptr;
mynode->in = 0;
mynode->in = false;
Run Code Online (Sandbox Code Playgroud)

我真的不知道出了什么问题,我记得第一次使用USED工作但显然不是.有帮助吗?

编辑:在实际的源文件中,'mynode'是另一个结构内部的指针.

Ker*_* SB 5

也许这样:

struct node
{
    int load;
    int tolerance;
    bool has_fired;
    node *in[1] = { nullptr };
    node *out[1] = { nullptr };
};
Run Code Online (Sandbox Code Playgroud)

(请注意,node::innode::out数组指针.)

用法:

node n;    // n.in and n.out are initialized
Run Code Online (Sandbox Code Playgroud)

在C++ 11中,括号或等于初始化程序使类成为非聚合类.如果这是一个问题,您也可以省略初始化程序并说:

node n;
n.in[0] = nullptr;
n.out[0] = nullptr;
Run Code Online (Sandbox Code Playgroud)

甚至:

node n { 0, 0, false,  { nullptr }, { nullptr } };
Run Code Online (Sandbox Code Playgroud)