我有一個關於從pthread執行函數返回結果的問題。Pthread返回結果
相關代碼:
void* thread_func(void* args)
{
float result = 0;
// ...do something
return (void*)&result;
}
// ... using code
float answer;
pthread_join(pthread_handle, &answer);
對我來說,似乎這種解決方案並不像它應該安全地工作,因爲result
將駐留的thread_func
在堆棧上並停止後thread_func
回報存在。然而,在我所做的所有測試中,它似乎完美無缺地工作。有什麼我誤解爲什麼這是安全的?如果不是這樣,我的測試只是偶然發生,我如何安全地從thread_func
安全返回值?
這絕對不行,最有可能的是你沒有完全測試過。嘗試'valgrind'開始。 –