Как вытащить const указатель из массива структур? - C (СИ)
Формулировка задачи:
Здравствуйте. Пишу на pic в mplab. Хочу вытащить const указатель из массива структур, чтобы сравнить его с другим const указателем... Компилятор ругается.
if(msg_vars[uc_index].ptr_mes == ptr_mes) { uc_sort = uc_index; ... }
внутри структуры const unsigned char *ptr_mes. В функции ptr_mes - аналогично const unsigned char *ptr_mes
Решение задачи: «Как вытащить const указатель из массива структур?»
textual
Листинг программы
// Сообщение подобного характера уже выведено и время жизни сообщения ещё не закончено. // Выходим из сортировки и записываем данные по этому индексу. msg_vars[0].ptr_mes = ptr_mes; if(msg_vars[uc_index].ptr_mes == msg_vars[0].ptr_mes) { uc_sort = uc_index; break; }
Объяснение кода листинга программы
- В данном коде происходит сортировка массива структур
msg_vars
по полюptr_mes
. - Каждая структура
msg_vars
содержит указательptr_mes
на сообщение. - В начале кода, вероятно, инициализируется массив структур
msg_vars
и заполняется значениями. - Затем, в цикле, происходит сравнение указателей
ptr_mes
каждой структурыmsg_vars
с указателемptr_mes
первой структурыmsg_vars
. - Если указатели совпадают, то переменная
uc_sort
получает значениеuc_index
и цикл прерывается. - После выхода из цикла, в
uc_sort
будет содержаться индекс структуры, которая будет считаться отсортированной. - В данном случае, отсортированным считается первый элемент массива
msg_vars
, так как его указательptr_mes
совпадает с указателемptr_mes
первой структурыmsg_vars
. - Значение
uc_sort
используется для дальнейшей обработки отсортированного элемента массиваmsg_vars
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д