[英]How to pass a struct with an matrix as pthread argument?
我有以下結構:
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列數。
如何填充struct的參數( row
和matrix
),並將其作為參數傳遞給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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.