私のプログラムで 'pthread_create'メソッドを使用していて、このメソッドの中にセグメンテーション違反があります。
これはおそらく何が原因でしょうか?私は正しい引数の型でこの関数を呼び出しています!pthread_segmentation fault
これはコードです:
pthread_t* _daemon;
void* writer(void* arg){
// stuff that dont involve "arg"...
}
int initdevice(){
if(pthread_create(_daemon, NULL, &writer, NULL) != 0) //seg in this line
{
cerr << "system error\n";
return ERR_CODE;
}
return SUCCESS;
}
int main() {
initdevice();
return 0;
}
注:私はpthread_createの中にライターに呼び出す前に、「&」なしでも、それを実行しようとした、とも - 私たちは、このメソッドに送信しようとしました最後のNULL引き数の代わりにいくつかのvoid *引き数。
この呼び出しの周りで使用するコードを投稿すると、おそらく正しく実行されていない可能性があります。 – Mat
問題は行番号17にあると思います。 – Nawaz
グローバル変数の最初の文字としてアンダースコア '_'を使用しないでください(変数の先頭には使用しないでください)。 [これらの識別子はコンパイラとOS用に予約されている](http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier/228797#228797 )。 –