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

 
 
> передача элемента структуры в ф-ю
Метценгерштейн
сообщение Nov 3 2016, 13:50
Сообщение #1


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

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



есть структура
Код
typedef struct{  
    uint8_t outgoing[4];
} outgoing_t;

outgoing_t    outgoing_arr [10];


так корректно передать в ф-ю элемент этой структуры?
Код
memcpy(&outgoing_arr[0].outgoing, local_outgoing, 4);


просто если без & передавать, то тоже работает.
Не сообразить, как правильно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Arlleex
сообщение Nov 3 2016, 20:04
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



У вас и так и так не правильно, а то что оно и так и так работает - следствие из однородности имени массива и адрес его первого элемента.

Код
1) memcpy(&(outgoing_arr[0].outgoing[0]), local_outgoing, 4); // копирование 4 байт из local_outgoing в outgoing[0] из outgoing_arr[0]

2) memcpy(&outgoing_arr[0].outgoing[0], local_outgoing, 4); // аналогично 1)

3) memcpy(outgoing_arr[0].outgoing, local_outgoing, 4); // аналогично 1)

4) memcpy(&outgoing_arr[0].outgoing, local_outgoing, 4); // аналогично 1), работать будет, но формальная запись не совсем верная (берем адрес массива, который по сути есть одно и то же) - но тут может вылететь warning на несоответствие типов указателей


memcpy(&(outgoing_arr[0].outgoing[1]), local_outgoing, 3); // копирование 3 байт из local_outgoing в outgoing[1] из outgoing_arr[0]
...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   передача элемента структуры в ф-ю   Nov 3 2016, 13:50
- - DASM   если без & то и без [] надо, а как лучше моноп...   Nov 3 2016, 14:07
- - Метценгерштейн   нет, структуры именно передаются с &, а массив...   Nov 3 2016, 14:15
|- - jorikdima   Цитата(Метценгерштейн @ Nov 3 2016, 07:15...   Nov 3 2016, 17:54
- - Метценгерштейн   так ответа на вопрос и не увидел. я разве не прав,...   Nov 3 2016, 19:36
- - Kabdim   & - вполне уместен и для массивов. Вы пользует...   Nov 3 2016, 19:53
- - Метценгерштейн   с массивом понятно. со структурой - не очень. ф-я ...   Nov 3 2016, 19:58
- - Метценгерштейн   вот как мы можем весь массив local_outgoing скопир...   Nov 3 2016, 20:08
|- - k155la3   есть 3 типа передачи аргументов в C(++) 1. По зна...   Nov 4 2016, 06:57
|- - Метценгерштейн   как массив в ф-ю по указателю передать- вопросов н...   Nov 4 2016, 07:33
|- - k155la3   Цитата(Метценгерштейн @ Nov 4 2016, 11:33...   Nov 4 2016, 07:44
- - skripach   Код&outgoing_arr[0].outgoing[0...   Nov 3 2016, 22:11
- - Arlleex   Цитатат.е. при передаче элемента структуры, наприм...   Nov 4 2016, 07:50
- - Метценгерштейн   я хочу передать адрес элемента структуры, который,...   Nov 4 2016, 07:58
|- - k155la3   вроде как да. Только не в "третьей" (по ...   Nov 4 2016, 08:15
- - Метценгерштейн   да, конечно. с индексом 3.   Nov 4 2016, 09:09


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

 


RSS Текстовая версия Сейчас: 12th August 2025 - 04:07
Рейтинг@Mail.ru


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