动态分配2d数组传递给用于多线程的函数

时间:2017-09-15 04:13:34

标签: c arrays multithreading dynamic

我希望将2d动态分配的数组传递给函数。

当我在线程中声明一个2d数组以便我可以多线程时,我的问题出现了。

在我的主档案中:

int **prod = (int*)malloc(k * sizeof(int*));
for(int i = 0; i < k; i++){
   prod[i] = (int*)malloc(m * sizeof(int));
}

在我的thread.c文件中:

typedef struct threadParam{
   int number, paramK, paramN, paramM;
   int paramLeft[2][3];
   int paramRight[3][2];
   int indexArray[2];
   int **product;
} threadParam;

void function(int noThread, int k, int n,
  int m, int left[][n], int right[][m], int prod[][m]){

}

我将main中的所有零初始化prod,然后将其作为参数传递给函数,但最终得到我可以假设的是prod元素中的内存地址。

打印:

for(int i = 0; i < k; i++){
    for(int j = 0; j < m; j++){
        printf("MM%d ", prod[i][j]);
    }
}

输出:MM11935792 MM0 MM11935824 MM0

我之后尝试使用线程,以便在我的main函数中写入prod指向的内存。

将2d数组初始化为0:        ** prod =(int){0};

0 个答案:

没有答案