C++ struct初始化断言失败

Neo*_*nix 3 c++ struct assert

#include <cassert>
#include <string>
struct AStruct 
{ 
    int x; 
    char* y; 
    int z; 
};
int main()
{ 
    AStruct structu = {4, "Hello World"};
    assert(structu.z == ???);
}
Run Code Online (Sandbox Code Playgroud)

我应该写什么来取代???成功的断言?
我用过assert(structu.z == 0);但很遗憾得到了错误
int main(): Assertion 'structu.z == 0 failed.Aborted'

小智 5

你要:

 assert(structu.z == 0);
Run Code Online (Sandbox Code Playgroud)

您的代码分配给z成员而不是测试它.如果您确实收到了编辑问题所说的消息,那么您的编译器就会崩溃.哪一个?

  • @Neo:我不相信`assert(structu.z == 0)`给你的消息`Assertion:structu.z = int()failed` ... (3认同)
  • 当其他答案说同样的事情被投票时,为什么这会被贬低? (3认同)