buongiorno sapete dirmi perchè la matrice non viene stampata:
l file di testo è:
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "nodo.h"
static Matrice *allocaMatrice(int m, int n)
{
Matrice *A;
int i;
A = malloc(sizeof(Matrice));
A->m = m;
A->n = n;
A->mat = malloc(m*sizeof(float *));
for (i=0; i<m; i++) {
A->mat[i] = malloc(n*sizeof(float));
}
return A;
}
void freeMatrice(Matrice *A)
{
int i;
int m;
m = A->m;
for (i=0; i<m; i++) {
free(A->mat[i]);
}
free(A->mat);
free(A);
}
void stampaMatrice(Matrice *A)
{
int i, j, m, n;
m = A->m; n = A->n;
for (i=0; i<m; i++) {
for (j=0; j<n; j++) {
printf("%f ", A->mat[i][j]);
}
printf("\n");
}
}
Matrice *leggiMatrice(FILE *fp)
{
Matrice *A;
int m, n, i, j;
fscanf(fp, "%d%d",&m,&n);
A = allocaMatrice(m,n);
A->m = m;
A->n = n;
for (i=0; i<m; i++) {
for (j=0; j<n; j++) {
fscanf(fp,"%f", A->mat[i] + j);
}
}
return A;
}
C:
#ifndef nodo_h
#define nodo_h
#include <stdio.h>
struct matrice {
int m; //numero di righe
int n; //numero di colonne
float **mat; //dati della matrice
};
typedef struct matrice Matrice;
Matrice *leggiMatrice(FILE *fp);
void stampaMatrice(Matrice *A);
void freeMatrice(Matrice *A);
#endif /* nodo_h */
C:
#include <stdio.h>
#include <stdlib.h>
#include "nodo.h"
int main()
{
Matrice *A;
FILE *fp;
fp = fopen("input.txt", "r");
A = leggiMatrice(fp);
fclose(fp);
stampaMatrice(A);
freeMatrice(A);
}
l file di testo è: