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

 z235235_795 发布于 2023-02-10 12:37

这是我的结构:

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'是另一个结构内部的指针.

1 个回答
  • 也许这样:

    struct node
    {
        int load;
        int tolerance;
        bool has_fired;
        node *in[1] = { nullptr };
        node *out[1] = { nullptr };
    };
    

    (请注意,node::innode::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 } };
    

    2023-02-10 12:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有