Is it true that the dimension of an array is determined the moment the array is created, and cannot be changed later on? : <pre><code>int main()
{
    int a[3]={1,2,3};

    int *b;

    b=&amp;a[10];

    printf("%u\n",b);

    printf("%d",*b);

}
</code></pre>

<p>I thought that the above program would give me an <strong>error</strong> as <code>a</code> is a collection of only <em>3 data items</em>, and <code>b=&amp;a[10];</code> by this <code>b</code> stored the address of the <em>11th data member</em> of <code>a</code>. But in place of error it gives the address of 11th data member.</p>

<p>Size of the array is 3 and but it can store the variables beyond of its size! so how does it possible?</p>
