Ich versuche, zwei multidimensionale Arrays zu einer Matrix zu multiplizieren. Ich habe diese Funktion. Dies sollte theoretisch funktionieren. Allerdings bekomme ich nur Nullen und große/peinliche Zahlen. Kann mir jemand dabei helfen?Multiplikation zweier Arrays in 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);
}
ein minimales Beispiel mit einer main() und einigen Beispielmatrizen wäre praktisch – Spacedman
Nicht wirklich mit Ihrer Frage verbunden, aber statt nur "Insuff mem" drucken, wenn malloc fehlschlägt, sollten Sie zumindest etwas mit dem tun nicht zugeordneten Speicherplatz. – buddhabrot
@ user373466, ich habe mehr Zeit damit verbracht, als ich hätte. Eine Stimme oder zwei und ein Akzeptieren würden geschätzt. – AlastairG