这是我的结构:
struct node { int load; int tolerance; bool has_fired; node *in[1]; node *out[1]; };
我试过了:
node mynode; mynode->in = null; mynode->in = nullptr; mynode->in = &nullptr; mynode->in = 0; mynode->in = false;
我真的不知道出了什么问题,我记得第一次使用USED工作但显然不是.有帮助吗?
编辑:在实际的源文件中,'mynode'是另一个结构内部的指针.
也许这样:
struct node { int load; int tolerance; bool has_fired; node *in[1] = { nullptr }; node *out[1] = { nullptr }; };
(请注意,node::in
和node::out
是数组的指针.)
用法:
node n; // n.in and n.out are initialized
在C++ 11中,括号或等于初始化程序使类成为非聚合类.如果这是一个问题,您也可以省略初始化程序并说:
node n; n.in[0] = nullptr; n.out[0] = nullptr;
甚至:
node n { 0, 0, false, { nullptr }, { nullptr } };