繁体   English   中英

C ++中带空数组的类的大小

[英]size of class with empty array in C++

AFAIK, sizeof不应该返回0 ,但是以下程序:

#include <iostream>

class A {
public:
    int a[0];
};

int main() {
   A obj;
   std::cout << sizeof(obj) << std::endl;
}

输出0 为什么?

C ++不允许零大小的数组。 符合标准的编译器拒绝代码,例如:

$ g++-4.8 -pedantic-errors main.cpp
main.cpp:5:14: error: ISO C++ forbids zero-size array 'a' [-Wpedantic]
       int a[0];
              ^

因此sizeof的行为根本不相关。 GCC允许它(没有-pedantic )作为编译器扩展

暂无
暂无

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

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