реклама на сайте
подробности

 
 
> указатель на указатель, помочь разобраться
Метценгерштейн
сообщение Jul 27 2018, 10:48
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Встретил в коде следующую конструкцию:

Код
ble_advdata_tk_value_t* oob_key;
err_code = nfc_tk_value_get(&oob_key);


где:

Код
typedef struct
{
  uint8_t tk[BLE_GAP_SEC_KEY_LEN];      /**< Array containing TK value in little-endian format. */
} ble_advdata_tk_value_t;


Код
ret_code_t nfc_tk_value_get(ble_advdata_tk_value_t ** pp_tk_value)
{
    if (m_tag_match)
    {
        *pp_tk_value = &m_device_tk;
        return NRF_SUCCESS;
    }
    else
    {
        return NRF_ERROR_NOT_FOUND;
    }
}


Есть вопрос. Как все проговорить что тут происходит?
Есть тип структуры ble_advdata_tk_value_t. Создали переменную- указатель на этот тип: oob_key.
Дальше? Передаем не просто адрес (сам указатель oob_key), а именно адрес этого указателя? А в ф-ии уже принимаем указатель на указатель?
Разыменовывали на один уровень вверх и по тому значению присвоили адрес уже массива.

А проще никак?
err_code = nfc_tk_value_get(oob_key);

и приняли:
Код
ret_code_t nfc_tk_value_get(ble_advdata_tk_value_t * pp_tk_value)
{
    if (m_tag_match)
    {
        pp_tk_value = &m_device_tk;
        return NRF_SUCCESS;
    }
    else
    {
        return NRF_ERROR_NOT_FOUND;
    }
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   указатель на указатель   Jul 27 2018, 10:48
- - Kabdim   Всё что со знаками вопроса - верно. Проще никак. С...   Jul 27 2018, 11:05
- - x893   есть передать сам указатель вы его изменить не смо...   Jul 27 2018, 11:44
- - Метценгерштейн   Хорошо, а в моем приведенном примере- в чем ошибка...   Jul 27 2018, 11:51
|- - x893   Цитата(Метценгерштейн @ Jul 27 2018, 14:5...   Jul 27 2018, 12:09
- - Метценгерштейн   Не нашел в инете такой книжки. Не совсем понимаю,...   Jul 27 2018, 12:25
- - _pv   на что будет указывать oob_key после выполнения фу...   Jul 27 2018, 12:39
- - Метценгерштейн   Разыменование происходит в оригинальном примере: *...   Jul 27 2018, 12:54
|- - _pv   Цитата(Метценгерштейн @ Jul 27 2018, 19:5...   Jul 27 2018, 13:49
||- - Метценгерштейн   Цитата(_pv @ Jul 27 2018, 16:49) в каком ...   Jul 27 2018, 14:32
|- - Kabdim   Цитата(Метценгерштейн @ Jul 27 2018, 15:5...   Jul 27 2018, 14:48
|- - DASM   Цитата(Kabdim @ Jul 27 2018, 17:48) Но де...   Jul 27 2018, 15:22
- - Метценгерштейн   Так я же не против почитать что-то) Читал много, н...   Jul 27 2018, 14:50
- - Kabdim   Упрощенно: Переменная снаружи имеет какое-то значе...   Jul 27 2018, 15:02
|- - Herz   Цитата(Kabdim @ Jul 27 2018, 18:02) В сте...   Jul 27 2018, 17:32
|- - Arlleex   Цитата(Herz @ Jul 27 2018, 20:32) Простит...   Jul 27 2018, 18:21
- - Метценгерштейн   Кодret_code_t nfc_tk_value_get(ble_advdata_tk_...   Jul 27 2018, 15:24
- - Arlleex   Попробую внести ясности-понятности. Код// допустим...   Jul 27 2018, 15:41
- - Kabdim   2Метценгерштейн: Видимо я утерял нить рассуждений....   Jul 27 2018, 15:42
- - Метценгерштейн   Arlleex, спасибо за подробное изложение. Прошлись ...   Jul 27 2018, 19:42
|- - Arlleex   Цитата(Метценгерштейн @ Jul 27 2018, 22:4...   Jul 28 2018, 11:15
- - x893   Для АРМ параметры передаются через регистры (пока ...   Jul 27 2018, 19:46
- - Метценгерштейн   Спасибо. Упустил из вида момент, что Кодble_advda...   Jul 28 2018, 16:59
- - Метценгерштейн   Спасибо. Упустил из вида момент, что Кодble_advda...   Jul 29 2018, 05:19
|- - andrew_b   Цитата(Метценгерштейн @ Jul 29 2018, 08:1...   Jul 29 2018, 07:27
|- - GeorgK   Возможно (вроде этого не было), стоит ещё упомянут...   Aug 31 2018, 17:37
- - DASM   Давайте давайте учтите плохому. "Within funct...   Sep 1 2018, 04:17
- - Professor Chaos   Цитата(Метценгерштейн @ Jul 29 2018, 08:1...   Sep 1 2018, 13:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th April 2024 - 16:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016