相关疑难解决方法(0)

这个结构如何具有sizeof == 0?

有一个旧帖子要求一个sizeof可以返回的构造0.高信誉用户有一些高分答案说,按标准,没有类型或变量可以有0的大小.我同意100%.

然而,这个新的答案提出了这个解决方案:

struct ZeroMemory {
    int *a[0];
};
Run Code Online (Sandbox Code Playgroud)

我正要进行投票和评论,但是在这里度过的时间教会我检查我100%肯定的事情.所以...让我惊讶的是,gccclang显示出相同的结果:sizeof(ZeroMemory) == 0.更重要的是,变量的大小是0:

ZeroMemory z{};
static_assert(sizeof(z) == 0); // Awkward...
Run Code Online (Sandbox Code Playgroud)

Whaaaat ...?

Godbolt链接

这怎么可能?

c++ sizeof language-lawyer

78
推荐指数
4
解决办法
5114
查看次数

为什么C++中空类的大小不为零?

可能重复:
C++:空类对象的大小是多少?

为什么以下输出1

#include <iostream>

class Test
{
};

int main()
{
    std::cout << sizeof(Test);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ sizeof

74
推荐指数
4
解决办法
5万
查看次数

sizeof可以返回0(零)

sizeof运算符是否有可能在C或C++中返回0(零)?如果可能的话,从标准的角度来看是否正确?

c c++ sizeof

50
推荐指数
4
解决办法
9881
查看次数

标签 统计

c++ ×3

sizeof ×3

c ×1

language-lawyer ×1