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'是另一个结构内部的指针.
也许这样:
struct node
{
int load;
int tolerance;
bool has_fired;
node *in[1] = { nullptr };
node *out[1] = { nullptr };
};
Run Code Online (Sandbox Code Playgroud)
(请注意,node::in和node::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)