我希望将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};