将参数传递给线程

时间:2015-05-13 17:13:43

标签: c pthreads

我有这个结构:

#define NUM_T 5

typedef struct {
    int j;
    int vetor[BUFFER_SIZE];
} estrutura_main;

我想作为参数传递给线程:

estrutura_main structure;
for(i=0;i<NUM_T;i++){
        structure.j=i;
        pthread_create(&threads[i], NULL, sum,(void*)&structure);
}

我的问题是,当我在函数j中访问sum时,它总是4,并且每次都应该是一个不同的数字,从0到4.我已经尝试将其更改为< / p>

typedef struct {
    int j[NUM_T];
    int vetor[BUFFER_SIZE];
} estrutura_main;

但我无法访问线程中我想要的j位置。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是因为&structureNUM_T的{​​{1}}来电始终相同。

您可以尝试

pthread_create

然后每个线程获得一个指向不同实例的指针。