本文主要是介绍调用pthread_mutex_destroy之后是否需要free,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
翻译自:http://stackoverflow.com/questions/6883032/do-i-need-to-use-delete-after-pthread-mutex-destroy
问:
假设我有以下代码来初始化互斥变量:
pthread_mutex_t *m = new pthread_mutex_t;
pthread_mutex_init(m, NULL);
使用结束后调用:
pthread_mutex_destroy(m);
那么我是否需要调用 free(m)
答:
你需要释放内存,pthread_mutex_destroy并不能为你释放。
为什么呢?
因为下面的调用方法是被允许的:
pthread_mutex_t m;
pthread_mutex_init(&m, NULL);pthread_mutex_destroy(&m); /* Can't free &m. 这里是引用*/
你可能传入一个指针,也可能传入引用,函数并不能区分,因此,如果你声明的是指针,则需要手动free
这篇关于调用pthread_mutex_destroy之后是否需要free的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!