pthreads传递参数3警告

时间:2016-07-22 01:14:40

标签: c linked-list pthreads

当我尝试使用我的线程执行decFunk进程时,我得到一个参数3错误。我见过一些例子,他们提到我需要一个void参数,但我不确定该怎么做。

void *decFunk(PQueue* pQ){
    pQ->currentProcess = pQ->firstProcess;
    int temp = pQ->currentProcess->duration;
    pQ->firstProcess->duration = temp -1;

    if(pQ->currentProcess->duration == 0){
        pQ->firstProcess = pQ->firstProcess->next;
    }   
    return NULL;
}




int main(int argc, char *argv[]) {
    int numThreads = atoi(argv[1]);

    sem_init(&tLock,0,0);
    sem_init(&qLock,0,0);

    FILE * fIn;
    PQueue* sortQ;
    sortQ = startQueue();   

    printf("Enter number of threads you want to use.");
    pthread_t threads;

    pthread_create(&threads ,NULL , decFunk, sortQ);


    for(t = 0; t< 5; t++){
        fIn = fopen("input.txt", "r");
        printf("Time: %d\n", t);
        readIn(fIn, sortQ);
        printQ(sortQ);

        t++;
        fclose(fIn);
        sleep(1);
    }
pthread_join(&threads,NULL);
    pthread_exit(NULL);
    return 0;


}

1 个答案:

答案 0 :(得分:0)

规范的这一部分涵盖了与ColoredConsoleWrite(ConsoleColor.Blue, $"My favorite fruit: Apple");之间的指针转换:

  

§ 6.3.2.3指针
  可以将指向任何对象类型的指针转​​换为   指向void *并再次返回的指针;结果应该等于   原始指针。

如果将非void指针传递给以void作为参数的函数,则转换是自动的。如果将void *分配给非void指针,则转换也是自动的,反之亦然。

因此代码的相关位可写为:

void *