C语言 如何将带有矩阵的结构作为 pthread 参数传递?



我有以下结构:

typedef struct {
int row;
int** matrix;
} values ;

为了填充结构矩阵,我尝试了以下代码:

values **v = (values **)malloc(x * sizeof(values *));
for (int z = 0; z < y; ++z)
[z] = (values *)malloc(y * sizeof(values));

其中 x 是行数和 y 列数。

如何填充结构的参数(rowmatrix(并将参数传递给由 pthread 调用的函数? 类似于...

pthread_create(&thread1, NULL, somaLinha, v);

当你为结构分配空间时,C 实际上会为整数分配空间加上指针的空间(即 4+8 字节(

您需要为结构分配空间,然后为矩阵分配

values *v = (values *) malloc(sizeof(values));
v->matrix = (int **) malloc(y * sizeof(int *));
for (int z = 0; z < y; ++z)
v->matrix[z] = (int *) malloc(y * sizeof(int));

然后创建线程

pthread_create(&thread1, NULL, somaLinha, v);

最新更新