C中的编译错误:对于非结构或联合的成员'____'的请求

时间:2018-04-04 17:37:55

标签: c struct compilation pthreads cpu-architecture

我收到以下编译错误:request for member ‘threeds’ in something not a structure or union

这是我的结构:

struct pthread_arg {
int size;
int threeds;
int the_threads;

};

以下是导致问题的一行:

    int first = *(arg.threeds) * N/number_of_the_threads;

我已经在这里查看了其他类似的问题,但在建议更改后仍然会出现相同的错误。

1 个答案:

答案 0 :(得分:3)

看起来arg是一个传递给线程函数的句子(它是指向你的struct的指针)。

在这种情况下,您无法直接取消引用arg,因为它是void*。将其转换为适当的类型(必须与传递给pthread_create API的参数匹配),然后使用:

void *multiplication(void *arg)
{
    struct pthread_arg *myarg = arg;
    int first = myarg->threeds * N/number_of_the_threads;
    ...