我有一个关于从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'开始。 –