30/09/2018, 19:13
Cần giúp đỡ về hàm malloc trong C
Em viết chương trình để đọc 1 ma trận từ 1 file cho sẵn, tuy nhiên nó lại báo lỗi segmentation fault, và em cũng ko biết cách nào sửa lỗi này dù đã thử đủ kiểu, sau đây là đoạn code mà em viết:
Matrix *readm(FILE *p)
{
Matrix *m;
m = (Matrix *) malloc(sizeof(Matrix));
fscanf(p,"%d %d",&(m->row),&(m->column));
m->matrix = malloc(sizeof(int *)*m->row);
int i,j,c;
for(i=0;i<m->column;i++)
m->matrix[i] = malloc(sizeof(int)*m->column);
for(i=0;i<m->row;i++)
for(j=0;j<m->column;j++)
{
fscanf(p,"%d",&c);
m->matrix[i][j]=c;
}
return m;
}
Em thử với 1 số test file khác nhau thì lúc chạy được, lúc không chạy được, ai đó có thể giải thích tại sao được ko ạ?
Bài liên quan
đọc cái này trước khi post code nhé!
malloc đầu là sizeof(int*)
fscanf(file,"%d%d",…) vì có dấu ’ ’ có thể bị đọc sai kích thước ma trận