Я пишу c ++ / cli (warpper-) dll для использования C # Dll в нативном C ++.
Одна из функций C #, которую я обертываю, возвращает String-массив неизвестного размера .
У меня была идея использовать функцию экспорта следующим образом:
__declspec(dllexport) void someFunc(char*** pStringArray);
Имея в виду идею передать char * -array-указатель на Dll. Dll заполнит переданный массив C # String-array.
Я не знаю размер возвращаемого массива строк, поэтому я не могу выделить память для указателя перед вызовом функции Dll. Хотя это плохо для распределения памяти в куче в Dll, потому что это может легко привести к большой утечке памяти. Если возможно, я хочу избежать очистки памяти другим вызовом Dll.
Каков наилучший способ решения этой проблемы?
Есть ли лучшие способы вернуть массив строк неизвестного размера?