【发布时间】:2013-10-20 22:16:34
【问题描述】:
首先,我不确定如何将整数指针设置为数组。其次,这是设置 pthread_create 参数的正确方法吗?
这是我的参数结构:
typedef struct args {
int *arr;
int number;
} args;
我创建了一个指向结构的指针:
args *arguments = (args *)malloc(sizeof(args));
我需要将 args.arr 的每个元素设置为 argv(命令行参数)作为整数。我不太明白如何设置 args.arr 的每个元素:
for(i = 1; i < argc; i++)
arguments->arr[i] = atoi(argv[i]); // Edit: Segmentation fault on this line
我创建了一个线程数组:
pthread_t threads[4];
..并将参数传递给每个函数调用:
for(i = 0; i < 4; i++)
pthread_create(&threads[i], NULL, func, arguments);
【问题讨论】:
-
请不要说“这不起作用”而不说 what 不起作用。这完全没有帮助。
标签: c arrays multithreading pointers