struct TheStruct {
vec3 first;
vec4 second;
mat4x3 third;
};
uniform TheStruct aUniformOfArrayType;
In application(C++) code, the name " aUniformOfArrayType" does not have a location; calling glGetUniformLocation on it will return -1. However, each of aUniformOfArrayType's fields do have a location. So you can call "glGetUniformLocation(program, " aUniformOfArrayType.first");" it will give a location and you can set valut to that parameter like a vec3 parameter in shader.
Details of uniform objects are explained in this link:
http://www.opengl.org/wiki/GLSL_Uniform[
^]