Witam. Mam za zadanie wypisać dwie macierze o wymiarach m1xm2 oraz n1xn2 w języku C bez użycia znaków z użyciem wskaźników.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, k, l, m1, m2, n1, n2;
scanf("%d %d", &m1, &m2);
int** mac = malloc(m1 * sizeof(int*));
for(i=0; i<m1; i++) *(mac + i)=malloc(m2 * sizeof(int));
for(i=0; i<m1; i++)
for(j=0; j<m2; j++) scanf("%d", *(*mac+i*m2+j));
scanf("%d %d", &n1, &n2);
int** mac2 = malloc(n1 * sizeof(int*));
for(k=0; k<n1; k++) *(mac2 + k)=malloc(n2 * sizeof(int));
for(k=0; k<n1; k++)
for(l=0; l<n2; l++) scanf("%d", *(*mac2+k*n2+l));
for (i=0; i<m1; ++i) free(*(mac+i));
free(mac);
for (k=0; k<n1; ++k) free(*(mac2+k));
free(mac2);
return 0;
}
Ale przy wczytywaniu liczb program przerywa działanie.. W czym może tkwić problem?