У меня есть матричная структура:
typedef struct Matrix
{
float m[16];
} Matrix;
Когда я пытаюсь вызвать эту функцию:
memcpy(m->m, MultiplyMatrices(m, &translation).m, sizeof(m->m));
Я получаю ошибку во время компиляции, говоря:
ошибка: недопустимое использование массива без значения
MultiplyMatrices возвращает матрицу.
Я получаю эту ошибку, только если использую gcc для компиляции файла в объект, еслиЯ использую g ++ для компиляции объекта, я не получаю ошибки.
Я даже не уверен, что означает ошибка, у меня такое ощущение, что это связано с массивом, хранящимся в матрице, возвращаемой MultiplyMatrices.
Если вам нужно увидеть больше кода, дайте мнезнать.
Этот код взят из этого урока: Глава 4 книги OpenGL
ps Я бы хотел придерживаться строгого iso / ansi этого кода, если нет другого решенияоднако, тогда мне просто придется иметь дело с этим.
РЕДАКТИРОВАТЬ: я закончил с созданием временной матрицы, а затем скопировать массив.
Matrix tempMatrix;
...
tempMatrix = MultiplyMatrices(m, &translation);
memcpy(m->m, tempMatrix.m, sizeof(m->m));