Salve a tutti,
ho un quesito.
Leggo da file una matrice n*n
e devo passare i valori letti ad una funzione.
questo è il codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N_SEDI 9
/* dichiarazione delle funzioni */
int legge_matrice_costi();
void stampa_matrice_letta(int [][N_SEDI]);
/*** definizione delle funzioni ***/
/* legge la matrice di adiacenza dei costi */
int legge_matrice_costi()
{
int i = 0,
j = 0,
n = N_SEDI;
FILE *file_costi;
file_costi = fopen("costi.txt", "r");
int costo[n][n];
if(file_costi == NULL)
printf("Impossibile aprire il file");
else
{
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
fscanf(file_costi, "%d", &costo[i][j]);
}
fclose(file_costi);
return(costo[i][j]);
}
/* stampa a video i valori letti dai file */
void stampa_matrice_letta(int costo[N_SEDI][N_SEDI])
{
int i,
j,
n = N_SEDI;
printf(" ");
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
printf("%d", costo[i][j]);
printf("\n");
}
printf("\n");
}
int main(void)
{
int costo[N_SEDI][N_SEDI];
costo[N_SEDI][N_SEDI] = legge_matrice_costi();
stampa_matrice_letta(costo[N_SEDI][N_SEDI]);
return(0);
}
in fase di compilazione ho i seguenti errori:
01_funzioni.c: In function ‘main’:
01_funzioni.c:75:2: warning: passing argument 1 of ‘stampa_matrice_letta’ makes pointer from integer without a cast [enabled by default]
01_funzioni.c:52:6: note: expected ‘int (*)[9]’ but argument is of type ‘int’
dove sbaglio?
grazie per le eventuali risposte