Как вытащить const указатель из массива структур? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Пишу на pic в mplab. Хочу вытащить const указатель из массива структур, чтобы сравнить его с другим const указателем... Компилятор ругается.
Листинг программы
  1. if(msg_vars[uc_index].ptr_mes == ptr_mes)
  2. {
  3. uc_sort = uc_index;
  4. ...
  5. }
внутри структуры const unsigned char *ptr_mes. В функции ptr_mes - аналогично const unsigned char *ptr_mes

Решение задачи: «Как вытащить const указатель из массива структур?»

textual
Листинг программы
  1.            // Сообщение подобного характера уже выведено и время жизни сообщения ещё не закончено.
  2.             // Выходим из сортировки и записываем данные по этому индексу.
  3.             msg_vars[0].ptr_mes = ptr_mes;
  4.             if(msg_vars[uc_index].ptr_mes == msg_vars[0].ptr_mes)
  5.             {
  6.                 uc_sort = uc_index;
  7.                 break;
  8.             }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы