Why use array size 1 instead of pointer?
<p>In one C++ open source project, I see this.</p>

<pre><code>struct SomeClass {
  ...
  size_t data_length;
  char data[1];
  ...
}
</code></pre>

<p>What are the advantages of doing so rather than using a pointer? </p>

<pre><code>struct SomeClass {
  ...
  size_t data_length;
  char* data;
  ...
}
</code></pre>

<p>The only thing I can think of is with the size 1 array version, users aren't expected to see NULL. Is there anything else?</p>
