For example,
struct A{
GLint a1;
GLint a2;
GLint a3;
};

Uniform X{
A a[8];
}x;

---

GLchar* uniformNames[]={"x.a"};
GLuint uniformIndices[1]={0};
Now,
glGetUniformIndices(programID, 1, &uniformNames, &uniformIndices);

-- doesn't return uniformIndices[]? I think I am making an obvious mistake which I am not able to figure out. Please help me out.