オブジェクトのサイズをゼロとして取得していますが、これはすべきではありません。なぜコンパイラがこの答えを出すのかという概念を説明してください。
  #include<iostream>
  using namespace std;
  class xxx{
      public: int a[];  // Why this line is not giving error.
  }; 
  int main(int argc, char *argv[])
  {
      xxx x1;
      cout<<sizeof(x1); //Q=Why this code is not giving error.
      return 0;
  }