pthread実行関数から結果を返すことについて質問があります。Pthreadの返却結果
関連コード:result
はthread_func
のスタック上に存在し、thread_func
戻った後存在しなくなるので、それが安全に動作するはずのように私に
void* thread_func(void* args)
{
float result = 0;
// ...do something
return (void*)&result;
}
// ... using code
float answer;
pthread_join(pthread_handle, &answer);
は、ソリューションのこの種はいないようです。しかし、私がやったすべてのテストで、完璧に動作するようです。なぜこれが安全だと誤解していますか?そうでない場合、偶然のテストのためにテストが行われただけで、安全に戻り値をthread_func
から安全に戻すにはどうすればよいですか?
これは間違いなく、これを非常に徹底的にテストしていない可能性があります。 'valgrind'を使い始めましょう。 –