Niewiele wiadomo na temat ctypów, niedawno zaczęto z nim pracować.Jak przekazać wskaźnik z powrotem w ctypes?
Mam prostą funkcję w C-like dll, która zwraca wskaźnik do dynamicznie generowanego łańcucha.
Działa poprawnie, ale ponieważ ręcznie przydzielono pamięć dla ciągu znaków, powinienem zwolnić ją po użyciu.
mam coś takiego:
extern "C" char* DLL_EXPORT func(const char* str1, const char* str2)
{
return getSomeString(str1, str2);
}
// Goal is to call this function correctly from Python.
extern "C" void DLL_EXPORT freeMem(void *mem)
{
if(mem!=NULL)
delete mem;
}
Ale nie mam pojęcia, w jaki sposób można przekazać otrzymane wskaźnik z powrotem do usunięcia w Pythonie?
Zobacz http://stackoverflow.com/questions/7398575/deallocating-memory-for-objects-returned-to-python-through-ctypes. –