簡體   English   中英

如何通過矩陣作為pthread參數傳遞結構?

[英]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的參數( 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM