Возврат указателя на массив структур из функции? - C (СИ)
Формулировка задачи:
Добрый день!
Функция enter в момент вызова принимает массив структур monitor. Запускает функцию поиска свободной структуры searchFreeProd. Эта функция должна вернуть указатель на свободную структуру. Не могу сообразить как возвращать. Совсем запутался. Какой тип возврата определить, что писать в return?
Задание в том что бы возвратить именно указатель. Если возвращать просто порядковый номер структуры и инкрементировать указатель на ее значение, то у меня все работает.
#define prPcs 100 struct wh { char product[20]; float price; unsigned int pcs; unsigned int percent; }; void enter(struct wh *pMonitor); struct wh searchFreeProd(struct wh *pMonitor); int main(void) { struct wh monitor[prPcs]; enter(&monitor[0]); } void enter(struct wh *pMonitor) { //int prod; struct wh *pRet; *pRet = searchFreeProd(pMonitor); printf("Enter product: "); gets(pMonitor->product); printf("Enter price: "); scanf("%f", &pMonitor->price); printf("Enter pcs: "); scanf("%d", &pMonitor->pcs); printf("Enter percent: "); scanf("%d", &pMonitor->percent); } struct wh searchFreeProd(struct wh *pMonitor) { register int i; for(i = 0; pMonitor->product[0] && i<prPcs; i++, pMonitor++); if(i == prPcs) { //return -1; // Если свободных структур нет } return *pMonitor; }
Решение задачи: «Возврат указателя на массив структур из функции?»
textual
Листинг программы
return pMonitor;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д