我创建了C方法,它从方法返回const char *:
const char * extractDescriptor (int descriptorType, const char * imgURL, const char ** params);
现在在Python中,我接收指针并将该信息解码为字符串。
lib.extractDescriptor.restype = c_char_p
result = lib.extractDescriptor(descriptorType, imgPath, parameters)
result_decoded = c_char_p(result).value.decode("utf-8");
内存管理问题如何?我应该复制值并创建另一个方法来释放该指针(在C中创建),还是由Python自动发布?
在extractDescriptor的定义本身中,它返回 该功能的结果:
const char * message(std::string xml) {
char * msg = new char[xml.size() + 1];
strcpy(msg, xml.c_str());
return msg;
}