Рассмотрим массив фреймбуферов определяется следующим образом:изменяя размерность выделенной памяти в с
static uint8_t framebuffer[num_buffers][1024];
Массив был определен, чтобы иметь один размер каждого буфера дисплея, поскольку используемое оборудование периферийное требует его в мой внедренный заявление. Однако в других областях коды, было бы весьма выгодно для решения тех же буферов кадров дополнительных размерами, например .:
framebuffer[buf][page][col];
Как это сделать? Используя реальные числа, я хотел бы, чтобы диапазон страниц был от 0 до 7, а col - от 0 до 127. Примечание: каждая страница составляет 128 байт. Например, это утверждение будет оценить, верно, потому что они будут ссылки на один и тот же байт:
framebuffer[0][130] == framebuffer[0][1][2]
потому 130/128 = 1 (стр) и 130% 128 = 2 (колонка). Я предполагаю, что мне нужно использовать malloc, но я не добился правильного поведения.
Все комментарии и ответы были полезны, но это именно то, что я представлял себе. Я думаю, что я знал это лучше, чем в настоящее время, потому что я довольно ржавый с C. «Конверсия», которую вы продемонстрировали, очень помогает. Благодарю. – Anthony
Жюри по-прежнему не знает, действительно ли доступ к памяти через этот актерский закон, но он, вероятно, будет работать над реалиями реального мира –