È stata generata un'eccezione: violazione di accesso in lettura.

di il
4 risposte

È stata generata un'eccezione: violazione di accesso in lettura.

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");
	}
}

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte