Я пытаюсь создать интерфейс DLL в стиле C, который принимает входной символ * и назначает выходной символ * после выполнения некоторой операции перевода.Возвращаемое значение функции - код ошибки, поэтому он не будет использоваться для возврата символа *.
. Я вызываю функцию следующим образом:
char* output;
myfunc((char *) input.c_str(), &output);
И функцияопределяется как:
DLL_EXPORT int myfunc(char* input, char** output)
{
string translation = translate(input);
*output = (char *) malloc((translation.length()+1)*sizeof(char));
strcpy(*output,(char *) translation.c_str());
}
Это правильный способ реализации этого?Я создаю утечку памяти?