【发布时间】:2022-01-12 08:45:15
【问题描述】:
我正在阅读 PyBluez 库的 source code 并注意到在这段代码中,内存是用 malloc 分配的,但从未释放:
// add service classes, if any
for(i = 0; i < PySequence_Length(service_classes); i++) {
uuid_t *svc_class_uuid = (uuid_t*) malloc( sizeof( uuid_t ) );
PyObject *item = PySequence_GetItem(service_classes, i);
pyunicode2uuid( item, svc_class_uuid );
svc_class_list = sdp_list_append(svc_class_list, svc_class_uuid);
}
sdp_set_service_classes(&record, svc_class_list);
如果sdp_list_append() 函数没有释放指针但我找不到该函数的任何源代码来检查,我认为这是内存泄漏。
我是否应该在我的实现中在这个块的末尾添加free(svc_class_uuid);?
【问题讨论】:
标签: c memory-management memory-leaks bluetooth bluez