Mọi người cho em hỏi về mảng động của kiểu cấu trúc trong lập trình c ạ
Em đọc dữ liệu từ file đưa vào mảng sau đó đưa vào mảng động
em đang thắc mắc là sao nó vẫn lỗi và không thể giải phóng vùng nhớ được, mọi người giúp em với
Em cảm ơn!
typedef struct
{
int mssv;
char hoten[25];
float dtbtl;
}sinhvien;
void docfile(sinhvien ds[], int *n)
{
int i=0,j;
char temp[20];
FILE *f=fopen("D:\\sv.txt","rt");
if(f!=NULL)
{
while(!feof(f))
{
fscanf(f,"%d",&ds[i].mssv);
fgetc(f);
fgets(ds[i].hoten,25,f);
fscanf(f,"%f",&ds[i].dtbtl);
fgets(temp,sizeof(temp),f);
i++;
}
*n = i;
//doc file dua vao mang dong
sinhvien **dssv;
dssv = (sinhvien**)malloc(sizeof(sinhvien*)*i);
for(j=0;j<i;j++)
{
dssv[j] = (sinhvien*)malloc(sizeof(sinhvien)*i);
dssv[j].mssv = ds[j].mssv;
strcpy(dssv[j].hoten,ds[j].hoten);
dssv[j].dtbtl = ds[j].dtbtl;
}
//giai phong
for(j=0;j<i;j++)
{
free(dssv[j].mssv);
free(dssv[j].hoten);
free(dssv[j].dtbtl);
}
//in ra man hinh
for(j=0;j<i;j++)
{
printf("%d ",dssv[j].mssv);
printf("%s ",dssv[j].hoten);
printf("%.1f\n",dssv[j].dtbtl);
}
fclose(f);
}
}
Nội dung file sv.txt
170487 Phan Quoc Nam 4.0
123424 Pham Minh Hoang 1.0
125496 Le Kieu Diem 6.1
120132 Pham Kieu Trang 5.0

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?