ctypes接收指针和内存管理

时间:2016-01-12 13:37:04

标签: python c pointers memory-management

我创建了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;
}

0 个答案:

没有答案