Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 3

Указатель на функцию в параметрах функции, почему variable or field ‘function_name’ declared void

19.10.2018, 15:02. Показов 2100. Ответов 2

Студворк — интернет-сервис помощи студентам
почему error: variable or field ‘traverse’ declared void ?
что я делаю не так

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
52
53
54
55
56
#include <iostream>
 
typedef struct node_t
{
    int value;
    struct node_t* next;
 
} node_t;
 
typedef struct list_t
{
    node_t *curr;
} list_t;
 
void traverse( (*is_end)(void*), (*shift)(void*), (*action)( void* src, void* state), void *src, void *state )
{
    while (!is_end(src))
    {
        action(src, state);
        shift(src);
    }
}
 
int lst_end(void *p)
{
    list_t *t = (list_t*)p;
    return NULL == t->curr;
}
 
void lst_shift(void *p)
{
    list_t *t = (list_t*)p;
    t->curr = t->curr->next;
}
 
void lst_sum(void *p, void *q)
{
    list_t *t = (list_t*) p;
    int *s = (int*)q;
    *s += t->curr->value;
}
 
 
 
int main() {
    node_t c = {30, NULL};
    node_t b = {20, &c};
    node_t a = {10, &b};
 
    list_t list = { &a };
    int s1 = 0;
 
    traverse(lst_end, lst_shift, lst_sum, &list, &s1);
 
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2018, 15:02
Ответы с готовыми решениями:

Variable or field 'set_color' declared void
написал прог из книги вчём проблема ? #include &lt;iostream&gt; #include &lt;msoftcon.h&gt; #include &lt;math.h&gt; void draw_circle(int ,int ,int...

Variable or field 'fooo' declared void
пишу программу-конвентер. сначала в map записываются значения. потом, с помощью функции fooo при выборе 1 мы записываем этот map в...

Ошибка variable or fields 'OutVivod' declared void
Ошибка в строке 10: variable or fields 'OutVivod' declared void. 37: 'OutVivod' was not declared in this scope...

2
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,030
Записей в блоге: 1
19.10.2018, 15:04
Лучший ответ Сообщение было отмечено cpp_dev как решение

Решение

В параметрах traverse забыли указать возвращаемые функциями типы.
Т.е. не (*is_end)(void*), а int (*is_end)(void*), и т.д.
1
0 / 0 / 0
Регистрация: 19.10.2018
Сообщений: 3
19.10.2018, 15:23  [ТС]
Действительно. Только разбираюсь с указателями на функции. Спасибо!

вот правильный код:
C++
1
2
3
4
5
6
7
8
void traverse(int (*is_end)(void*), void (*shift)(void*), void (*action)( void* src, void* state), void *src, void *state )
{
    while (!is_end(src))
    {
        action(src, state);
         shift(src);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2018, 15:23
Помогаю со студенческими работами здесь

Указатель типа void на функцию, вызов функции
Необходимо с помощью указателя типа void запустить функцию. void func(int); int main(){ void *ptr_void; ptr_void=&amp;func; ...

Список с дробями: Variable or field 'input' declared void 'pd' was not declared in this scope
почему не нравится 1ая функция? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct rational_fraction { int numerator; int...

Как устранить ошибку variable or field declared void
Значит, сидел я тут, решал лабы, и вдруг... как говорится На моменте описания функции probel вылезает ошибка variable or field declared...

Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель
Всем привет, встретил в книге такой пример добавления узла в дерево: typedef struct tree { int data; tree *left, *right,...

Указатель void в функцию
Уважаемые форумчане подскажите такой вопрос, имеется некая функция на вход надо передать указатель void *pBuf, сама функция ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru