【发布时间】:2019-10-29 07:13:56
【问题描述】:
我正在尝试理解 pthreads,我正在研究这个项目,我必须通过 pthreads 将二维数组传递给稍后会对数组进行一些处理的函数。
我试图用 struct 传递它,但我很困惑。
#define rows 5
#define colums 5
void *maxthread(void *size )
{
int (*array)[rows][colums]
....
...
}
int main ()
{
int array[rows][colums];
int p,P;
pthread_t *thread;
int i,j,r,c;
printf("\n give numbers to array :\n");
for(i=0;i< grammes;i++)
{
for(j=0;j< stiles;j++)
{
printf("element [%d,%d] : ",i+1,j+1);
scanf("%d",&array[i][j]);
}
}
printf("\n matrix result :\n");
for(i=0;i< rows;i++)
{
for(j=0;j< colums;j++)
{
printf("%d\t",array[i][j]);
}
printf("\n");
}
printf("give number of threads\n");
scanf("%d",&p);
for(i=0;i<p;i++)
P=pthread_create(&thread[i][i],NULL,maxthread,(void *));
return 0;
我希望在数组中找到最大的数,但首先我必须通过 pthread 传递数组。
【问题讨论】:
-
这段代码对我来说没有多大意义。您有一个未分配的
thread *指针,并且正在使用&thread[i][i]对其进行索引并尝试创建一个线程。你在这里的意图是什么?你想要一个二维的线程数组吗?感谢您的澄清。 -
我只是在尝试!我想要实现的主要目标是通过 pthread 将用户创建的数组传递给函数
标签: arrays c pointers multidimensional-array pthreads