无法将结构类型的标识符设置为 nullptr;



我有一个看起来像这样的结构:

struct Wolf {
    Wolf *dog;
    Wolf *puppy;
};

我已经写了:

Wolf *alphawolf = new Wolf;

当我尝试将成员狗和小狗设置为nullptr时,它不会在C

中编译

更新:

我尝试了:

alphawolf.dog = nullptr;
alphawolf.puppy = nullptr;

alphawolf和。被带下划线的红色:错误是:

此声明没有存储类别或类型规范

现在我使用了:

alphawolf->dog = nullptr;
alphawolf->puppy = nullptr;

,但我试图在主要方法" offere offear offer(("之前做到这一点我仍然得到:此声明没有存储类别或类型规范

无法将可执行语句放在main()之外(或任何其他功能(。

如果要声明具有nullptr初始值的全局变量alphawolf,则语法为(main()之外(:

Wolf alphawolf {nullptr, nullptr};

也可以用new分配全局Wolf*。为了初始化,语法为:

Wolf *alphawolf = new Wolf {nullptr, nullptr};

要将nullptr分配给alphawolf的成员,语句需要在main()或其他功能中。

Wolf *alphawolf = new Wolf;
int main() {
    alphawolf->dog = nullptr;
    alphawolf->puppy = nullptr;
    /* Do other stuff with alphawolf */
    return 0;
}

最新更新