У меня есть матрица макета
const int boatRect[MAX_BITMAP_SIZE][MAX_BITMAP_SIZE] = { // 5
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0}
};
и структура с указателем на нее (матрица):
typedef struct bitmap {
Shape shape;
const int (*matrix)[MAX_BITMAP_SIZE];
int orientation;
int size;
} Bitmap;
Затем я хочу транспонировать (часть вращения процесс) матрица в структуре:
void transpose(const int (*shape)[MAX_BITMAP_SIZE]) {
const int *temp;
for(int i = 0; i < MAX_BITMAP_SIZE; i++) {
for(int j = 0; j < i; j++) {
temp = (const int *) shape[i][j]; //Cast to 'const int *' from smaller integer type 'int'
shape[i][j] = shape[j][i]; //Read-only variable is not assignable
shape[j][i] = temp; //Read-only variable is not assignable
}
}
}
но я получаю эти ошибки, я не уверен в том, что я делаю неправильно!
Я пытаюсь сделать это так способ иметь только одну матрицу в коде и иметь указатели на нее и поворачивать эти указатели так, чтобы они передавали повернутую матрицу, не создавая другую.
Итак, как мне в своей структуре Bitmap создать матрицу указатели, которые указывают на матрицу const int, а затем вращают эту матрицу указателей (а не матрицу int)?