この例を見てみましょう:
struct args{
char *fname;
}
int main(void){
struct args tArg;
tArg.fname = malloc(10);
strcpy(tArg.fname, "ciao");
pthread_create(&p1, NULL, thread, (void *)&tArg);
pthread_join(p1, NULL);
free(tArg.fname);
return 0;
}
void *thread(void *p1Arguments){
struct args *p1 = p1Arguments;
printf("%s\n", p1->fname);
}
に何もないため、プログラムをセグメンテーション違反printf
にthread
導きp1->fname
ます。
malloc された文字列を渡すにはどうすればよいですか?
編集:申し訳ありませんが、書くのを忘れていましたpthread_join