我已经写了一个过程,创建2个矩阵并将它们相乘。然而,我必须将我的代码分成函数,并且我在声明一个将为矩阵分配内存的函数时遇到问题。C函数分配内存
这里是我的代码:
void matrixMult(){
int **A, **B, **C; //matrices
int rowA, colA, rowB, colB; //rows and columns
int i, j, k; //for iterations
printf("Number of rows in matrix A: \n");
scanf("%d", &rowA);
printf("Number of columns in matrix A: \n");
scanf("%d", &colA);
printf("Number of rows in matrix B: \n");
scanf("%d", &rowB);
printf("Number of columns in matrix B: \n");
scanf("%d", &colB);
//memory allocation
A = (int**)malloc(rowA * sizeof(int));
B = (int**)malloc(rowB * sizeof(int));
C = (int**)malloc(rowA * sizeof(int));
for (i = 0; i < rowA; i++)
{
A[i] = (int*)malloc(colA * sizeof(int));
}
for (i = 0; i < rowB; i++)
{
B[i] = (int*)malloc(colB * sizeof(int));
}
for (i = 0; i < rowA; i++)
{
C[i] = (int*)malloc(colB * sizeof(int));
}
/*
the rest of code
*/
}
应该这个函数是什么样的?
这有什么错呢?它不起作用吗?它慢吗?它会导致内存泄漏吗?难看吗? – Beta
http://stackoverflow.com/questions/35542391/segmentation-fault-but-unable-to-reason-how-memory-allocation-looks-fine-to-me –
http://stackoverflow.com/questions/605845/do-i-cast-result-of-malloc –