У меня есть следующий код:
/*
* Pointer to a function that reads a codesegment
*/
typedef bool (*BRCS)(void *, uint32, uint64 *, uint64 *, const char **, const char **);
BRCS get_prog_id;
/*
* 'get_prog_id' is loaded from a dynamic library
*/
uint64 start_o;
uint64 length_o;
char prog_id[256];
char err[256];
get_prog_id(NULL, 0, &start_o, &length_o, &prog_id, &err);
Когда я запускаю свой компилятор, я получаю следующие предупреждения:
passing argument 5 of get_prog_id from incompatible pointer type
passing argument 6 of get_prog_id from incompatible pointer type
Итак, я жалуюсь, что у меня нет char **
за последние два аргумента.
Я в замешательстве.Насколько я понимаю, переменная, представляющая массив TYPES
, эквивалентна указателю на TYPE
.Таким образом, применение оператора &
даст вам указатель на указатель на TYPE
.
Что мне здесь не хватает?