【发布时间】:2017-01-10 07:36:50
【问题描述】:
我是 cgo 新手,有几个关于内存管理的问题。
假设我有一个简单的 c 函数如下:
char* get_str_in_arr(char **charArr, size_t i){
return charArr[i];
}
我是否需要如下释放内存:
func doSomething(){
cStr := C.get_str_in_arr(feats, C.size_t(1))
goStr := C.GoString(cStr)
defer C.free(unsafe.Pointer(cStr))
...
}
如果是这种情况,我是否需要对从方法返回的任何变量执行此操作。例如一个 c Struct, uint32_t, ...等
【问题讨论】:
标签: c memory-management go cgo