为什么以下程序不使用链接库时是好用的?

建了个链接库,声明了void (*function)(int *a);
然后function=dlsym(xlib,"function");
然后怎么在pthread_create中调用这个function函数?填了好几种方式都出现段错误
还有void (*function)(int *);写成void* function(int *),function=dlsym(xlib,"function");这句就会出错,这两个有什么区别?
我想在pthread_create中调用function,写成function,(void *)function都不行,出现段错误。

慕桂英546537
浏览 105回答 2
2回答

眼眸繁星

原型定义int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr,void *(*start_rtn)(void),void *restrict arg);第一个参数为指向线程标识符的指针。第二个参数用来设置线程属性。第三个参数是线程运行函数的起始地址。最后一个参数是运行函数的参数。这样子懂了吧?

qq_花开花谢_0

void* (function)(argument*) 是一个返回值为void型的函数指针void* function(argument*)是一个返回值为void 的函数概念不同
打开App,查看更多内容
随时随地看视频慕课网APP