Как вытащить 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;
            }

Объяснение кода листинга программы

  1. В данном коде происходит сортировка массива структур msg_vars по полю ptr_mes.
  2. Каждая структура msg_vars содержит указатель ptr_mes на сообщение.
  3. В начале кода, вероятно, инициализируется массив структур msg_vars и заполняется значениями.
  4. Затем, в цикле, происходит сравнение указателей ptr_mes каждой структуры msg_vars с указателем ptr_mes первой структуры msg_vars.
  5. Если указатели совпадают, то переменная uc_sort получает значение uc_index и цикл прерывается.
  6. После выхода из цикла, в uc_sort будет содержаться индекс структуры, которая будет считаться отсортированной.
  7. В данном случае, отсортированным считается первый элемент массива msg_vars, так как его указатель ptr_mes совпадает с указателем ptr_mes первой структуры msg_vars.
  8. Значение uc_sort используется для дальнейшей обработки отсортированного элемента массива msg_vars.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы