Как я могу напечатать указатель, который принимает функцию void? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть код main.c (не может быть изменен):

int main() {
  uint8_t *param ;
  param = func(key) ; 
}

Ключ - это массив из 16 элементов, и func объявлен в stud.c, который связан с main с помощью stud.h.,Функция func () объявлена ​​следующим образом:

void *func(void *key){//some code}

Теперь, как я могу напечатать param?я пробовал несколько вариантов с printf.Есть ли какие-либо предложения, пожалуйста?Мне нужен параметр как массив из 16 элементов в шестнадцатеричном формате.Я не могу ничего изменить в main.c (я не могу изменить любой тип !!!)

for(int j = 0; j < 16; j++) {
    printf("%02X ", param[j]);
}
printf("\n");

1 Ответ

0 голосов
/ 30 ноября 2018
for(int i = 0; i < 16; ++i) {
    printf("%02" PRIu8 "\n", param[i]);
}

, так как ваш массив имеет тип uint8_t.

Не забудьте #include <inttypes.h>.

Подробнее в Хорошее введение в, где объясняются другие соглашения о присвоении имен, например, PRIx8, если вы хотите напечатать шестнадцатеричное значение.

...