pthread_create采用函数指针形式的启动例程。
我在编写将传递给pthread_create的函数时遇到问题。该函数接受两个参数。我在调用它时遇到分段错误。
和pthread_create:
pthread_create(&tid_array[i], NULL, searchForWord(argv[i + 2], word), &wData[i]);
传递给pthread_create的函数是否可以接受void*以外的其他参数?
表达式searchForWord(argv[i + 2], word)
不是函数指针;它在当前线程中调用searchForWord,它总是返回NULL,然后将NULL传递给pthread_create。
线程启动函数必须有一个指向void参数的指针,但您可以自由创建一个结构,将指向该结构的指针传递到函数中。您将获得一个指向void的指针,可以将其强制转换为指向结构的指针。