Is there a clean way to allocate a variable size object on the stack, if the size is known at compile time?
<p>Consider the following code, which attempts to allocate an object containing a variable-length array on the stack.</p>

<pre><code>#include &lt;stdio.h&gt;

struct ContainVarLen {
    int normal;
    int varlen[];
};


int main(){
    ContainVarLen c;
}
</code></pre>

<p>Suppose I know at compile time that I need exactly 8 bytes of data in the <code>varlen</code> object.</p>

<p><strong>Is there a syntax to specify that I want this additional 8-byte allocation?</strong> </p>

<p>I think declaring a byte array right before the object seems like a hack.</p>