Доброго времени суток, all. На днях начал писать мини-движок для игры в шашки/шахматы/нарды/... (в-общем, любые игры, использующие поле). Всё бы ничего, дело продвигалось, но возникла проблема, самостоятельно которую решить у меня так и не получилось. Код: // Объявляем свою структуру для игровых объектов со ссылками на предыдущий и следующий typedef struct CGameObject* GameObjectPtr; typedef struct CGameObject { int x; int y; GameObjectPtr prev; GameObjectPtr next; } GameObject; // ---------------------------------- // Сравниваем x и y двух объектов. При совпадении, возвращаем указатель на первый static GameObjectPtr comparexy(GameObjectPtr go, GameObjectPtr goxy) { if((go->x == goxy->x) && (go->y == goxy->y)) { return go; } return NULL; } // Собственно, итератор с callback-функцией, принимающей два параметра - текущий объект и дополнительный. GameObjectPtr iterate(GameObjectPtr begin, GameObjectPtr callback(GameObjectPtr, GameObjectPtr), GameObjectPtr additional) { GameObjectPtr gocur = begin, goret = NULL; while(gocur->next != NULL) { gocur = gocur->next; if((goret = callback(gocur, additional)) != NULL) { return goret; } } return NULL; } // Функция поиска объекта по его x и y GameObjectPtr gofindbyxy(GameObjectPtr begin, int x, int y) { GameObjectPtr gonew = goalloc(NULL); gonew->x = x; gonew->y = y; return iterate(begin, comparexy, gonew); } При вызове gofindbyxy(begin, 1, 1); объекта, который существует он просто не находит. :( Не знаю, где собака порылась, не могу найти ошибку, если надо могу привести код аллокатора и деструктора. --- С Уважением,
Ответ на:
комментарий
от koTuk
Ответ на:
комментарий
от Jini
Ответ на:
комментарий
от BuG2BuG
Ответ на:
комментарий
от BuG2BuG
Ответ на:
комментарий
от BuG2BuG
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от BuG2BuG
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Ищу лаконичную реализацию range-based итераторов (2018)
- Форум Обещаный код с ошибкой __int_malloc (2004)
- Форум Написание функции, принимающей структуры разного типа (2013)
- Форум Занимательный PAS2C (2017)
- Форум Обёртка над Posix Timers (2016)
- Форум Сравнение производительности доступа к полям структур в Python, Common Lisp и С++ (2017)
- Форум вызов generic_make_request из обработчика запросов блочного устройства (2019)
- Форум block device driver: не работает чтение (2024)
- Форум Красивая реализация списков (2010)
- Форум [С/C++] Очистка данных после memcpy (2012)