Sie können verwenden:
GLfloat coordinates[8] = {1.0f, ..., 0.0f};
aber dies ist eine Initialisierung zur Kompilierzeit - Sie können diese Methode im aktuellen Standard nicht verwenden, um neu zu initialisieren (obwohl ich glaube, dass es Möglichkeiten gibt, dies im kommenden Standard zu tun, was Ihnen vielleicht nicht sofort hilft).
Die beiden anderen Möglichkeiten, die mir in den Sinn kommen, sind, den Inhalt zu verschweigen, wenn er repariert ist:
GLfloat base_coordinates[8] = {1.0f, ..., 0.0f};
GLfloat coordinates[8];
:
memcpy (coordinates, base_coordinates, sizeof (coordinates));
oder stellen Sie eine Funktion bereit, die wie Ihr Initialisierungscode aussieht:
void setCoords (float *p0, float p1, ..., float p8) {
p0[0] = p1; p0[1] = p2; p0[2] = p3; p0[3] = p4;
p0[4] = p5; p0[5] = p6; p0[6] = p7; p0[7] = p8;
}
:
setCoords (coordinates, 1.0f, ..., 0.0f);
unter Berücksichtigung dieser Ellipsen ( ...
) sind Platzhalter, nicht Dinge, die man buchstäblich in den Code einfügt.