J'essaie de multiplier deux tableaux multidimensionnels pour former une matrice. J'ai cette fonction. Cela devrait fonctionner en théorie. Cependant, je reçois juste des 0 et des numéros grands/maladroits. Quelqu'un peut il m'aider avec ça?Multiplication de deux tableaux en 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);
}
un exemple minimal avec un main() et quelques matrices d'échantillons serait pratique – Spacedman
Pas vraiment lié à votre question, mais au lieu de simplement imprimer "Insuff mem" quand malloc échoue, vous devriez au moins arrêter de faire quoi que ce soit avec le espace non alloué. – buddhabrot
@ user373466, j'ai passé plus de temps que je n'aurais dû. Un vote ou deux et un accord seraient appréciés. – AlastairG