2 / 2
Mar 2018

#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

  • created

    Mar '18
  • last reply

    Mar '18
  • 1

    reply

  • 718

    views

  • 2

    users

  • 1

    link

Wykonaj 5 podpunkt tej odpowiedzi bądź sformatuj poprawnie kod. Chwilowo nie da się pomóc.