Salve a tutti, mi rivolgo a voi perchè non sono in grado di capire 1 che problema ho di fronte e 2 come risolverlo.
studiando fondamenti di informatica (programmazione in C) mi sono trovato davanti un problema che mi chiede di scrivere una funzione che ritorni una matrice che è la somma di una data matrice A con la trasposta di B (anch'essa data). Il problema principale è che mi dà l'errore "È stata generata un'eccezione: violazione di accesso in lettura." e non so perchè. Grazie in anticipo per l'aiuto!
#include<stdio.h>
#include<stdlib.h>
#define aI 10
#define aJ 10
#define bI 10
#define bJ 10
int * funzione_1a_(int *A, int ai, int aj, int *B, int bi, int bj);
void printarray(int *A, int i, int j);
int main(void) {
int a[aI*aJ] = { 0 };
int b[bI*bJ] = { 0 };
int *c = funzione_1a_(*a, aI, aJ, *b, bI, bJ);
printarray(*c, aI, aJ);
}
int * funzione_1a_(int *A, int ai, int aj, int *B, int bi, int bj) {
int *R = (int *)malloc(sizeof(int)*ai*aj);
for (int i = 0; i < ai; ++i) {
for (int j = 0; j < aj; ++j) {
R[i*aj + j] = A[i*aj + j] + B[j*aj + i];
}
}
}
void printarray(int *A, int i, int j) {
for (int rig = 0; rig <= i - 1; ++rig) {
for (int col = 0; col <= j - 1; ++col) {
printf("%d ", A[rig*j + col]);
}
printf("\n");
}
}