Пример передачи структуры в функцию по указателю, и пример передачи массива структур.
Имеется некая структура console_menu:
// Структура
typedef struct {
char text[100];
int value;
} console_menu;
Она используется в двух следующих функциях:
// Функция принимает одну структуру по указателю
set_one_item(console_menu *menu)
{
sprintf(menu->text,"One item");
menu->value=50;
}
// Функция принимает массив структур
set_console_menu(console_menu menu[])
{
sprintf(menu[0].text,"One item in array");
menu[0].value=5;
sprintf(menu[1].text,"Two item in array");
menu[1].value=100;
}
Вызов этих функция выглядит так:
void main(void)
{
console_menu omnu;
console_menu cmnu[10];
// Передача по указателю одной структуры (передается адрес структуры)
set_one_item(&omnu);
// Передача массива структур
set_console_menu(cmnu);
printf("%s %d\n",omnu.text, omnu.value);
printf("%s %d\n",cmnu[0].text,cmnu[0].value);
printf("%s %d\n",cmnu[1].text,cmnu[1].value);
}