Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
2 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 10

Возврат указателя на массив структур из функции?

02.04.2012, 14:14. Показов 4257. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Функция enter в момент вызова принимает массив структур monitor. Запускает функцию поиска свободной структуры searchFreeProd. Эта функция должна вернуть указатель на свободную структуру. Не могу сообразить как возвращать. Совсем запутался. Какой тип возврата определить, что писать в return?
Задание в том что бы возвратить именно указатель. Если возвращать просто порядковый номер структуры и инкрементировать указатель на ее значение, то у меня все работает.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#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;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2012, 14:14
Ответы с готовыми решениями:

Передача\возврат указателя на массив в\из функции
Когда захожу в функцию PrintNeravenstvo, то указатель правильный, как только я делаю один заход на строчку( нажимаю ф10 один раз), то...

Возврат указателя на массив из функции
Здравствуйте. Пытаюсь вернуть указатель на массив из функции. #include &lt;iostream&gt; using namespace std; int*...

Возврат указателя на массив из функции
День добрый, коллеги по цеху. Не откажите в нужде java программисту в познаниях нативного кода. Запутался я совсем в указателях. Как...

1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
02.04.2012, 14:22
C
1
 struct wh *searchFreeProd(struct wh *pMonitor);
В функции
C
1
return pMonitor;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2012, 14:22
Помогаю со студенческими работами здесь

Возврат указателя из функции
Почему функция vvod не возвращает указатель? #include&quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &quot;stdio.h&quot; ...

ASM (Возврат указателя из функции)
1)Предисловие Функция, написанная на языке Ассемблера вызывается из кода, написанного на С. 1)Вопрос: Через стек в функцию...

Возврат указателя на локальный массив
Например ример: static unsigned char * func(...) { unsigned char d; memset(d, 'A', 16); return d; }

Возврат указателя на массив указателей
Доброго времени суток. Есть программа, где куча методов должны работать с одни массивом указателей. Как мне сделать, чтобы в функции...

Возврат указателя из функции с нужным типом
Как как мне получить из функции указатель нужного мне типа? Можно ли для этого использовать шаблоны? У меня выдается ошибка &quot;ошибка:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru