If you want to initialize Matrixes and Vectors, you have to initialize them one by one, and complete the unusued spaces with zero, otherwise it should not initialize. I refactored your code, try that and see what happens, I'm not sure what is the objective of your code.
union DP
{
int c[3];
char a[3][4] = {256,258,260,0,0,0,0,0,0,0,0,0,0}; //This will generate an overflow, char characters max value is 255 each (1 byte)
short b[2];
}point;
printf("%i",point.a[0][1]); //This printf will show this value as Integer type, if this compiles
printf("%i",point.a[1][2]);
printf("%i",point.a[2][0]);