#include <stdio.h>
#include <stdlib.h>
void showMatrix(int **a, int dim){
for (int i = 0; i < dim; i++){
for (int j = 0; j < dim; j++)
printf("%d “, a[i][j]);
printf(”\n");
}
}
void showArray(int *a, int n){
for (int i = 0; i < n; i++){
if (a[i] != -1) printf("%d “, a[i]);
else printf(”\n");
}
}
int productMatrix(int **a, int **b, int w, int k, int dim){
int s = 0;
for (int i = 0; i < dim; i++)
s += a[w][i]*b[i][k];
return s;
}
void loadData(){
int dim, *w = NULL, l = 0, p = 0;
while (scanf("%d\n", &dim) != EOF){
l += l + dim * dim + 1;
w = realloc(w, l * sizeof(int));
int *a[dim], *b[dim];
for (int i = 0; i < dim; i++){
a[i] = malloc(dim * sizeof(int));
for (int j = 0; j < dim; j++)
scanf("%d", &a[i][j]);
}
for (int i = 0; i < dim; i++){
b[i] = malloc(dim * sizeof(int));
for (int j = 0; j < dim; j++)
scanf("%d", &b[i][j]);
}
for (int row = 0; row < dim; row++)
for (int col = 0; col < dim; col++)
w[p++] = productMatrix(a, b, row, col, dim);
w[p++] = -1;
for (int i = 0; i < dim; i++){
free(a[i]);
free(b[i]);
}
}
if (w != NULL){
showArray(w, p);
free(w);
}
}
int main()
{
loadData();
return 0;
}
Nie rozumiem dlaczego mam segmention fault.
Czy ktoś potrafi powiedzieć gdzie jest błąd