繁体   English   中英

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

[英]can't set an identifier of type struct to nullptr;

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

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

我已经写了:

Wolf *alphawolf = new Wolf;

当我尝试将成员dog和puppy设置为nullptr时,它不会在C ++中编译

更新:

我试过了:

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

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

该声明没有存储类或类型说明符

现在我使用:

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

但是我仍然尝试在main方法“ main()之外”之前执行此操作:此声明没有存储类或类型说明符

无法将可执行语句放在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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM