Sbagliavi a leggere la matrice: come fai a leggere tutta una matrice (bidimensionale) e metterla in un vettore (monodimensionale)? Inoltre dovresti imparare a leggere i warning del compilatore: con il tuo codice mi diceva che 'y' era inutilizzata. La cosa dovrebbe insospettirti.
Così dovrebbe funzionare correttamente:
codice:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define FILE_NAME "testo.txt"
int countlines(char *file)
{
FILE *fl;
char ch;
int count=0;
if(!(fl=fopen(file,"r")))
return -1;
while((fscanf(fl,"%c",&ch))>0)
if(ch=='\n')
count ++;
return count;
fclose(fl);
}
int main()
{
FILE *fp;
int i=0;
int ctl;
//int *x;
//int *y;
int** matrice;
fp=fopen(FILE_NAME,"r");
ctl=countlines(FILE_NAME);
matrice = malloc(ctl * sizeof(int*));
for(i = 0; i < ctl; ++i) {
matrice[i] = malloc(ctl * sizeof(int));
}
//x=(int*)malloc(ctl*sizeof(int));
//y=(int*)malloc(ctl*sizeof(int));
int j;
i=0; j=0;
while((fscanf(fp,"%d",&matrice[i][j]))>0) {
printf("%d ",matrice[i][j]);
j++;
if(j == ctl) {
j = 0;
i++;
printf("\n");
}
}
return 0;
}