Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Selina
122 / 0 / 0
Регистрация: 10.10.2009
Сообщений: 23
1

Передача функции в заголовке

29.09.2010, 12:44. Просмотров 374. Ответов 1
Метки нет (Все метки)

Идея следующая:
имеется структура для абстрактного списка:
C
1
2
3
4
5
struct list{
    void *pointer;
    int code;
    list *next, *prev;
};
И глобальные переменные head - начало списка, n-количество элементов.

Написан итератор последовательного доступа к элементам:
C
1
2
3
4
5
6
7
8
9
10
list * iterator(){
    static list *lost;
    if (lost==0)
        lost=::head;
    else if (lost->next==::head)
        lost=0;
    else
        lost=lost->next;
    return lost;
}
И есть функция, которая идейно должна перебирать элементы списка в зависимости от того, какой итератор ей передадут:
C
1
2
3
4
5
6
typedef list * (*funLink)()
void feedAnimal(funLink fun){
    list *a=::head;
    while (a!=0)
        a=(list*)fun;
}
Но, как показала практика, нифига оно не срабатывает, потому что "а" передается не результат работы функции, а адрес на код итератора из заголовка. Кто-нибудь знает, как исправить?

Метод main()
C
1
2
3
4
5
6
7
8
9
int main(){
    setlocale(LC_ALL, "Russian");
    initialize();
    list *a=::head;
    f=&iterator;
    feedAnimal(f);
    dispose();
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 12:44
Ответы с готовыми решениями:

Передача функции в качестве аргумента другой функции
в книге Харви и Пол Дейтл нашел следующий вариант решения задачи, передачи функции в качестве...

Передача параметров функции
Не могу передать параметры из одной функции в другую Предупреждения: warning: passing...

Передача функции в функцию
Как реализовать передачу функции в функцию? Создал функцию take_off(LIST *lst, int *err) Теперь...

Передача элементов структуры в функции
Нужна помощь в передаче элементов структуры в функции .Не могу понять как взаимодействовать с...

Передача элемента матрицы функции
Есть функция void f(...) { ... } Как записать, чтобы она принимала элемент i-ой строки и...

1
CyBOSSeR
Эксперт С++
2313 / 1686 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
29.09.2010, 13:08 2
Selina, пожалуйста, приведите код полностью, чтобы имея всю информацию на руках, можно было быстрее разобраться в проблеме.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2010, 13:08

Передача данных из функции в функцию
#include <stdio.h> #include <stdlib.h> #include <math.h> float katet(float a, float b) { ...

Передача значения массива функции
Есть массив А. В функции прибавляем к каждому элементу массива А по единице (это будет массив С)....

Передача функции как параметра.
программа должна содержать две функции, одна должна вычислять значение выражения, а другая должна с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru