假設我有以下代碼來初始化互斥變量: [cpp] pthread_mutex_t *m = new pthread_mutex_t; pthread_mutex_init(m, NULL); 使用結束後調用: [cpp] pthread_mutex_destroy(m); 那麼我是否需要調用 free(m) 答: 你需要釋放內存,pthread_mutex_destroy並不能為你釋放。 為什麼呢? 因為下面的調用方法是被允許的: [cpp] pthread_mutex_t m; pthread_mutex_init(&m, NULL); pthread_mutex_destroy(&m); /* Can't free &m. 這裡是引用*/