У меня есть приложение на C++ (назовем его «client»), который широко использует двойные указатели для хранения и передачи массивов между его функциями и несколькими DLL.Передача указателя указателя на std :: vector function
Мне нужно интегрировать это с библиотекой C++, которая вместо этого предоставляет аргументы функции как std :: vector. Мне хорошо известно, что самым «чистым» ответом было бы переписать клиент для замены указателей векторами, но на данный момент это не вариант.
Например, это одна из функций, предоставляемых библиотекой:
EXPORT void* swt(vector<double> &, int , string , vector<double> &, int &);
и это одна из двойных указателей мне нужно передать в качестве первого аргумента функции выше:
double* TSF_MAD = (double*)malloc(DatasetsCount*sizeof(double));
Я попытался как следующее, но и поднять ту же ошибку (C2664):
swt(TS, TSLen, "Test", TS, d);
swt(&TS[0], TSLen, "Test", &TS[0], d);
Любая помощь с благодарностью
Не добавляйте теги, потому что письмо соответствует! C и C++ - это разные языки! – Olaf
О нет, не 'malloc'. – erip
использовать 'новый' оператор в C++ вместо' malloc' –