让我们看这个例子:
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
into导致程序出现段错误,thread
因为没有 into p1->fname
。
我能做些什么来传递一个 malloc 的字符串?
编辑:对不起,我忘了写pthread_join