Добрый день.
Чтото не могу понять как правильно объявить указатель на двумерный массив чтобы компилятор не ругался.
Есть такой массив:
Код
[b]unsigned int [/b] [i]__flash[/i] Program1[5][4] =
{
{0,0,0,0},
{1,1,1,1},
{2,2,2,2},
{3,3,3,3},
{4,4,4,4}
}
И есть некая структура управления в которой хочу создать указатель на этот двумерный массив:
Код
typedef struct
{
unsigned int __flash **program;//указатель на текущую исполняемую программу
} stProgram;
stProgram Program; //экземпляр структуры
Стоит задача сделать так чтобы используя указатель Program.program обращаться к двумерному массиву
наиболее понятным образом Program.program[0][1] (без использования * и всяких смещений)
Определил функцию инициализации масива
Код
void SetProgram(unsigned int __flash **program_addr)
{
Program.program = program_addr;
}
Компилятор ругается на вызов этой функции:
Код
SetProgram(&Program1[0][0]);
Цитата
Error[Pe167]: argument of type "unsigned int __flash (*)[4]" is incompatible with parameter of type "unsigned int __flash **"