Salve dovrei svolgere questo eserzio in C ma non capisco cosa mettere nel main.c e in matrix.c e in matrix.h .
Esercizio 1 Creare i file matrix.h e matrix.c che consentano di utilizzare la seguente struttura:
struct matrix { size_t N, M; double *data; };
e la funzione:
extern struct matrix *mat_copy(const struct matrix *mat);
La struct consente di rappresentare matrici di dimensioni arbitraria, dove N è il numero di righe, M è il numero di colonne e data è un puntatore a N×M valori di tipo double memorizzati per righe. Consideriamo ad esempio la matrice A=(1,2,3;4,5,6) questo corrisponderebbe ad una variabile struct matrix A, con A.N = 2, A.M = 3 e A.data che punta ad un area di memoria contenente i valori { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 }.
La funzione accetta come parametro un puntatore ad una matrice e deve ritornare una nuova matrice, allocata dinamicamente sull’heap, con le stesse dimensioni e con lo stesso contenuto, ovvero una copia della matrice. Il puntatore mat non sarà mai NULL.