Ich deklarierte ein Array und übergeben Sie ein 2D-Array als Parameter. Allerdings bekomme ich immer den gleichen Fehler: subskribierter Wert ist weder Array noch Pointer oder Vektor. für diese Linie: Vertex [i] [j-1] = Form [i] [j];C - subskribiert Wert ist weder Array noch Zeiger und Vektor
Wie kann ich es lösen?
Header-Datei:
GLfloat mijnplayer [][4] ={
{0,-0.091057,0.198079,0.084590},
{0,-0.158043,0.158043,0.071039},
{0,-0.071039,0.158043,0.158043}};
Funktionsaufruf:
int main(void)
{
drawVertex(mijnplayer,3,1);
}
void drawVertex(GLfloat shape[][4], int numberVertex, int shape)
{
int i,j;
GLfloat vertex[][3]={0};
//convert 4element array to 3 element array
for(i=0;i<numberVertex;i++)
{
for(j=1;j<4;j++)
{
vertex[i][j-1] = shape[i][j];
}
}
for(i=0;i<numberVertex;i++)
{
glVertex3fv(vertex[i]);
}
}
EDIT:
die komplette Compiler Ausgabe:
cc -c -o mijnTest.o mijnTest.c
mijnTest.c: 23: 59: Fehler: widersprüchliche Arten für 'Form'
Hohlraum drawVertex (GLfloat Form [] [4], int numberVertex, int Form) ^
mijnTest.c: 23: 25: Hinweis: vorherige Definition von 'Form' war hier
Leere drawVertex (GLfloat Form [] [4], int numberVertex, int Form) ^
mijnTest.c: In der Funktion 'drawVertex':
mijnTest.c: 43: 26: Fehler: subskribierter Wert ist weder Array noch Zeiger noch Vektor
Vertex [i] [j-1] = Form [i] [j]; ^
mijnTest.c: In Funktion 'drawScene':
mijnTest.c: 69: 2: Warnung: Übergabe des Arguments 1 von 'drawVertex' von inkompatiblen Zeigertyp [standardmäßig aktiviert]
drawVertex (Assen, 6,0); ^
mijnTest.c: 23: 6: Anmerkung: erwartete 'GLfloat () [4]', aber Argument vom Typ 'GLfloat () [3]'
Hohlraum drawVertex (GLfloat Form [] [4], int numberVertex, int Form) ^
make: *** [mijnTest.o] Fehler 1
Der Datentyp der Form ist int. –
Können Sie Ihre Frage bearbeiten, um die * complete * -Ausgabe des Compilers in vollständiger und unbearbeiteter Form mit allen möglichen Informationen und Warnungen zu enthalten. –
@JoachimPileborg, hinzugefügt. –