gpt4 book ai didi

c - 如何将字符串数组中的元素传递给线程?

转载 作者:行者123 更新时间:2023-12-02 07:31:01 25 4
gpt4 key购买 nike

在解决“将元素从字符串数组传递到线程”的问题时需要一些帮助。我的代码在这篇文章之后。我在 main 函数中声明了一个字符串数组,然后将该数组的一个元素传递给一个线程。在线程中,我将其类型转换回 char* 类型,然后打印,但它打印的是垃圾值。将不胜感激解决方案:

#include <stdio.h>
#include <pthread.h>

void *agent(void *);

int main(int argc, char *argv[]) {
int i;
pthread_t agent_t[3];
char *agent_colour[3] = {"Red","White","Brown"};

for(i = 0 ; i <= 2 ; i++) {
pthread_create(&agent_t[i], 0, agent, &agent_colour[i]);
}

for(i = 0 ; i <= 2 ; i++) {
pthread_join(agent_t[i], NULL);
}

return 0;
}

void *agent(void *arg) {
char *colour = (char*)arg;
int x;
srand(time(NULL));
x = rand() % 5 + 1;
sleep(x);
printf("\n My name is Agent %s\n", colour);
pthread_exit(NULL);
}

我的输出是:

 My name is Agent � @

My name is Agent � @

My name is Agent � @

最佳答案

试试这个:

pthread_create(&agent_t[i], 0, agent, agent_colour[i]); 

关于c - 如何将字符串数组中的元素传递给线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648346/

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