不确定原因,但......会导致错误的原因
main.c:126:4:错误:无法转换为指针类型main.c:126:4:警告:从不兼容的指针类型[默认启用]传递'pthread_create'的参数3 /usr/include/pthread.h:225:12:注意:预期'void *(*)(void )'但参数的类型为'void()(struct arrayslice)'
据我所知,我已正确制作了此功能的原型。
struct People{
int count;
int levels;
};
struct arrayslice *args = ¤t;
pthread_create(&thread, NULL, countall, (void*) &args);
答案 0 :(得分:1)
您可以参考以下文章。这个实际上包含有关pthread的有用信息以及相关的示例和解释。
https://computing.llnl.gov/tutorials/pthreads/
预期'void *(*)(void)'但参数的类型为'void()(struct arrayslice)”
关于编译错误,这是因为你没有在第三个参数中传递正确的函数指针。看起来你的功能是
void countall(struct arrayslice);
然而pthread期望你的功能应该是
void* countall(void* arrayslice);