gpt4 book ai didi

c - C 中的空参数

转载 作者:行者123 更新时间:2023-12-03 00:25:08 27 4
gpt4 key购买 nike

我正在使用 pthreads,并使用一个名为“runner”的函数来指定在线程上使用哪些方法。

这是我的运行者功能:

void *runner(void* param){
int* parm = (int*) param;

if(parm == 1){
MergeSort(intArr, 0, (fileLen/2));
}

if(parm == 2){
MergeSort(intArr, (fileLen/2)+1, fileLen - 1);
}
if(parm == 3){
Merge(intArr, 0, (fileLen/2), fileLen - 1);

}
pthread_exit(0);
}

我的问题是,当我在 main 中创建此线程时,出现编译器错误:“警告:指针和整数之间的比较”。

pthread_create(&tid1, &attr1, runner, 1);

我一直在尝试不同的方法来转换整数,但我仍然在努力寻找正确的方法。

最佳答案

pthread_create 期望其第四个参数为 void*,对应于 runnervoid* 输入,但你传递给它的是一个int。相反,创建一个 int 变量并将其地址作为第四个参数传递,例如:

int param = 1;
pthread_create(&tid1, &attr1, runner, &param);

关于c - C 中的空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35495771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com