【发布时间】:2013-10-09 21:49:44
【问题描述】:
我正在尝试编译但收到错误
error: expected expression before 'void'
warning: passing argument 3 of 'pthread_create' from incompatible pointer type [enabled by default] used [-Wunused-but-set-variable]
我将结构类型转换为 void* 所以它应该可以工作。
在我的全局变量部分
struct threadArgs
{
char** str;
int length;
};
struct threadArgs arguments;
错误周围的线条在这里
arguments.str = str;
arguments.length = linesRead;
for(int i = 0; i < lettersInAlpha; i++)
errCode[i] = pthread_create(&letter[i], NULL, &findMatch, (*void)&arguments);
findMatch 的原型是void findMatch(char **str, const int length);
另外我认为我通过传递数组地址来做正确的事情,对吧?
基本上任何代码都可以更改,所以findMatch()可以根据需要进行修改。
【问题讨论】:
-
线程函数的类型必须为
void * (void *)。 -
什么是
void * (void *)?老实说,我什至没有得到void *指向 void 类型的指针? -
取一个 void 指针,返回一个 void 指针。你还需要什么?