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

 
 
> передача элемента структуры в ф-ю
Метценгерштейн
сообщение 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
Ответов
Метценгерштейн
сообщение Nov 3 2016, 20:08
Сообщение #2


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

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



вот как мы можем весь массив local_outgoing скопировать в один элемент
outgoing[1] из outgoing_arr[0] ?

нужно весь local_outgoing копировать в весь outgoing из outgoing_arr[0]
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 4 2016, 06:57
Сообщение #3


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



есть 3 типа передачи аргументов в C(++)
1. По значению. Копия того, что Вы передаете в функцию, укладывается или в регистр процессора, и-или на стек.
(если надо передать char-int-float-long)
2. По указателю. В функцию сами данные не передаются, на стек или в регистры процессора передается адрес данных,
и Вы указываете, какой тип этих данных.
3. По ссылке (физически это тотже указатель, а синтаксис позволяет Вам использовать в функции "не-указательное", а обычное обращение к данным)

"Передача" массива в ф-ию.
Код
char MyArray[] = {1,2,3,4};

void GetArray( char * in_array, int in_array_size )
{
    in_array[0] = . . . .
    in_array[1] = . . . .
};

GetArray( MyArray, sizeof(MyArray) );
или
GetArray( &MyArray[0], sizeof(MyArray) );
или
GetArray( &(MyArray[0]), sizeof(MyArray) );

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
- - Arlleex   У вас и так и так не правильно, а то что оно и так...   Nov 3 2016, 20:04
|- - Метценгерштейн   как массив в ф-ю по указателю передать- вопросов н...   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 Текстовая версия Сейчас: 30th July 2025 - 02:45
Рейтинг@Mail.ru


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