#include <cassert>
#include <string>
struct AStruct
{
int x;
char* y;
int z;
};
int main()
{
AStruct structu = {4, "Hello World"};
assert(structu.z == ???);
}
我应该写什么来代替 ???
才能获得成功的断言?
我使用了 assert(structu.z == 0);
但不幸的是得到了错误
int main(): 断言 'structu.z == 0 failed.Aborted'
最佳答案
你想要:
assert(structu.z == 0);
您的代码分配给 z 成员而不是测试它。如果你确实收到了你编辑的问题说你收到的消息,那么你的编译器就坏了。是哪一个?
关于C++ 结构初始化断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6178874/