У меня есть заранее написанная функция в C
, которая заполняет одномерный массив данными, например,
int myFunction(myData **arr,...);
myData *array;
int arraySize;
arraySize = myFunction(&arr, ...);
Я хотел бы вызывать функцию n
раз подряд с немного отличающимися параметрами (n
зависит от ввода пользователя), и мне нужны все данные, собранные в один массив C
впоследствии. Размер возвращаемого массива не всегда фиксирован. Ох, и myFunction
делает распределение памяти внутри. Я хочу сделать это эффективным способом памяти, но использование realloc
в каждой итерации не является хорошей идеей.
У меня есть все доступные функции C++
(проект находится в C++
, просто используется библиотека C
), но использование std::vector
не годится, потому что собранные данные позже отправляются в функцию с определением, аналогичным:
void otherFunction(myData *data, int numData, ...);
Есть идеи? Единственное, о чем я могу думать, это realloc
или использование std::vector
и копирование данных в массив впоследствии, и это не звучит слишком многообещающе.