Не заносится в память размерность моей матрицы из текстового файла. Вот мой код
Вот моя реализация, оцените
void openprint (int **x, int *n, int *m){
int j , i,k;
FILE *f;
char name [25];
printf ("enter the name of the file");
scanf ("%s", name);
if((f=fopen(name,"r"))==NULL){
printf ("file not found");
system ("PAUSE");
}
fscanf (f,"%d%d", n, m) ;
x=(int**)malloc(sizeof(int*)* *n);
for(i=0;i< *n;i++)
x[i]=(int*)malloc(sizeof(int)* *m);
for(i=0;i< *n;i++)
for(j=0;j< *m;j++)
fscanf(f,"%d", &x[i][j]);
fclose(f);
printf(" matrix:\n") ;
for(i=0;i< *n;i++){
for(j=0;j< *m;j++)
printf ("%3d", x[i][j]);
printf("\n");
}
}
Ответы (1 шт):
Автор решения: AlexGlebe
→ Ссылка
Всё читается, только вы выделенную память не сохраняете наружу и указатель на неё теряется в стеке.
void openprint (int **x, int *n, int *m){
=>
void openprint (int ***xp , int *n, int *m){
..
* xp = (int**)malloc(sizeof(int*)* *n);
int * * x = * xp ;
..
вызов :
int * * x ;
int n ;
int m ;
openprint ( & x , & n, & m);