glTranslatef
принимает три float
аргумента, а не один аргумент массива. Это конец.
float XYZ[3] = {3,2,1};
glTranslatef(XYZ[0], XYZ[1], XYZ[2]);
Если вы действительно в отчаянии, вы можете распаковать его с помощью макроса:
#define UNPACK_TRI_ARRAY(ar) ar[0], ar[1], ar[2]
float XYZ[3] = {3,2,1};
glTranslatef(UNPACK_TRI_ARRAY(XYZ));
Но как только вы дойдете до этой точки, вы должны спросить себя почему .