Я объявил массив и передал 2D-массив в качестве параметра. Однако я продолжаю получать ту же ошибку: индексированное значение не является ни массивом, ни указателем, ни вектором. для этой строки: vertex [i] [j-1] = shape [i] [j];C - индексированное значение не является ни массивом, ни указателем, ни вектором
Как его решить?
заголовочный файл:
GLfloat mijnplayer [][4] ={
{0,-0.091057,0.198079,0.084590},
{0,-0.158043,0.158043,0.071039},
{0,-0.071039,0.158043,0.158043}};
вызов функции:
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:
полный вывод компилятора:
куб.см -c -o mijnTest.o mijnTest.c
mijnTest.c: 23: 59: ошибка: конфликтующие типов для 'формы'
недействительного drawVertex (GLfloat форма [] [4], Int numberVertex, Int форма) ^
mijnTest.c: 23: 25: примечание: предыдущее определение 'формы' был здесь
аннулируются drawVertex (GLfloat форма [] [4], Int numberVertex, внутр форма) ^
mijnTest.c: В функции 'drawVertex':
mijnTest.c: 43: 26: ошибка: индексированное значение не является ни массивом, ни указателем, ни vector
vertex [i] [j-1] = shape [i] [j]; ^
mijnTest.c: В функции 'drawScene':
mijnTest.c: 69: 2: предупреждение: проходя аргумент 1 из 'drawVertex' от несовместимого типа указателя [по умолчанию включено]
drawVertex (assen, 6,0); ^
mijnTest.c: 23: 6: Примечание: ожидаемый "GLfloat () [4], но аргумент типа 'GLfloat () [3]'
пустоты drawVertex (форма GLfloat [] [4], Int numberVertex, внутр форма) ^
марка: *** [mijnTest.o] Ошибка 1
Тип данных формы - int. –
Не могли бы вы отредактировать свой вопрос, чтобы включить * полный * вывод компилятора в полном объеме и неотредактированный, включая любые возможные информационные заметки и предупреждения. –
@JoachimPileborg, добавлено. –