c – 这个类的大小是什么,为什么?

我有两个班,如下
class A
{

};

class B
{
    int a[];
};


int main()
{
    cout << sizeof(A) <<endl;      //outputs 1
    cout << sizeof(B) <<endl;      //outputs 0
    return 0;
}

我很熟悉,空类的大小是1,但为什么B类的大小是零?

解决方法

GCC允许零长度数组作为扩展名: http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html

和:

As a quirk of the original implementation of zero-length arrays,sizeof evaluates to zero.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...