Я использую openCV
и нуждаюсь в некоторой функции обратного вызова. Эти функции callback
просто принимают ограниченные параметры. Итак, если мне нужно больше переменных для этой функции, я должен сделать глобальные переменные и повернуть их между функциями.C: массив void *
Например, здесь есть функция обратного вызова:
void mouse_callback(int event, int x, int y, int flags, void* param);
// params : addition parameter, and just one, I need more parameters for this callback.
// but cannot, so make global variable.
И потому, что я не должен делать это (сделать глобальную переменную), поэтому я решил сделать массив (void*)
, но я боюсь, C не может сделать это, потому что размер каждого члена может быть другим.
Мой вопрос: можем ли мы создать массив (void *), а если нет, то как я могу преодолеть свою проблему: использовать функцию обратного вызова и не нужно делать глобальную переменную.
Спасибо :)
Создайте структуру со всеми вашими данными в ней, а затем нарисуйте ее на 'void *'? – GWW
http://stackoverflow.com/questions/7262012/array-of-void-pointers-in-c – perilbrain
@LuchianGrigore ах, да, мы знаем размер (void *). Прости. но я все еще не могу использовать как: '(void *) a [];' – hqt