【发布时间】:2018-10-30 13:56:42
【问题描述】:
我正在做一个任务,我必须用pthreads C 处理一些图像。
我有以下结构:
typedef struct {
int type;
int width;
int height;
int max_value;
int *input;
}image;
和
typedef struct {
int id; // thread id
image *in; //input image
}ptf_arguments;
我还有一个函数,我尝试实例化一个 structure_b 数组,并将给定 structure_a 的参数分配给每个函数
void resize(image *in, image * out) {
int i;
pthread_t tid[num_threads];
ptf_arguments *arguments[num_threads];
arguments[0]->in->input = (int *)malloc(in->width * in->height * sizeof(int));
arguments[0]->in = in; // HERE
printf("First thread should have id = %d. In image of (%d)\n", arguments[0]->id, arguments[0]->in->width); //here
for(i = 0 ; i < num_threads; i++) {
pthread_create(&(tid[i]), NULL, resize_thread_function, &(arguments[i]));
}
}
1) 我不太了解结构,我需要有人向我解释如何将输入/输出图像传递给我的 ptf_arguments 结构,以便我可以将它传递给 pthreads 函数。
2) 我需要为图像结构分配内存吗?
3) 是否需要为 ptf_arguments 结构的图像结构内的int 数组分配内存?
谢谢
【问题讨论】:
标签: c pointers segmentation-fault structure