Я пытаюсь размножить два многомерных массива, чтобы сформировать матрицу. У меня есть эта функция. Это должно работать теоретически. Тем не менее, я просто получаю 0 и большие/неудобные числа. Может кто-то помочь мне с этим?Умножение двух массивов в C
int **matrix_mult(int **a, int **b, int nr1, int nc1, int nc2)
{
int **c;
int i,j,k,l;
c = malloc(sizeof(int *)*nr1);
if (c == NULL){
printf("Insuff memm");
}
for(l=0;l<nr1;l++){
c[l] = malloc(sizeof(int)*nc1);
if (c[l] == NULL){
printf("Insuff memm");
}
}//for loop
for (i=0;i<nr1;i++){
for (j=0;j<nc2;j++){
for (k=0;k<nc1;k++){
c[i][j] = (a[i][k]) * (b[k][j]);
}
}
}
return(c);
}
минимальный пример с основными() и некоторыми матрицами образцов был бы полезен – Spacedman 2010-12-10 12:12:20
Не имеет отношения к вашему вопросу, но вместо того, чтобы просто печатать «Insuff mem», когда malloc терпит неудачу, вы должны по крайней мере прекратить делать что-либо с помощью незанятое пространство. – buddhabrot 2010-12-10 12:22:36