<分区>
我正在用 C 语言创建一个线程,但它传递的是引用而不是值。
for (i=0; i<num_thread; i++){
pthread_create(&thread[i], NULL, mou_oponent,(void *)&i);
}
int mou_oponent(void* ind) //THIS IS THE HEADER OF THE FUNCTION
我需要的是值而不是引用,因为我在线程中获取了 i 的值,但它被更改了,因为 for 递增了它。
<分区>
我正在用 C 语言创建一个线程,但它传递的是引用而不是值。
for (i=0; i<num_thread; i++){
pthread_create(&thread[i], NULL, mou_oponent,(void *)&i);
}
int mou_oponent(void* ind) //THIS IS THE HEADER OF THE FUNCTION
我需要的是值而不是引用,因为我在线程中获取了 i 的值,但它被更改了,因为 for 递增了它。
最佳答案
在 int mou_oponent(void* ind)
中,您应该通过其他变量复制到其他内存,然后处理其他变量而不是 ind
。
希望对你有帮助
关于c - 我如何将值发送到线程而不是引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767670/