Я использую библиотечную функцию, которая ожидает массив указателей (void**
) в какой-то момент, она работает более или менее так.
void* args[] = { &var_a, &var_b, &var_c, ... };
someFunction(args);
После использования один раз, я хотел быВызовите ту же функцию еще раз, поэтому я создаю еще одну переменную, например:
void* args_2[] = { &var_d, &var_e, &var_f, ... };
someFunction(args_2);
И так далее ...
Я бы хотел найти способ recycle символ args
, поэтому мне не нужно делать args_2, args_3, args_4 каждый раз, когда я его вызываю;но когда я пытаюсь переназначить его как:
args = { &var_d, &var_e, &var_f, ... };
, я получаю следующее:
error: assigning to an array from an initializer list
Я понимаю ошибку, но не знаю, как ее избежать или принудить эту вещьв предполагаемый массив типов указателей.
Я знаю, что это два разных языка, но я ищу решение, которое работает как на C, так и на C ++.