读书人

关于free的施用

发布时间: 2012-12-31 11:57:52 作者: rapoo

关于free的使用
void writefile(void)
{
FILE *fp;
stud *buffer;
buffer=write_file();
if((fp=fopen("student.txt","a+"))==NULL)
{
printf("*****文件打开失败!*****\n");
exit(1);
}
else
{
printf("*****文件打开成功!可以输入!*****\n");
fprintf(fp,"%s %s %d %ld %s %s %s\n",buffer->name,buffer->sex,buffer->age,buffer->student_num,buffer->dept,buffer->_class,buffer->grade);
//free(buffer);
}
fclose(fp);
}
//这里释放buffer会出错,buffer是有某个函数返回的指针,该函数如下:
stud是自定义结构
stud * write_file (void)
{
stud *buffer;
char name[20];
char sex[5];
int age;
lint num;
char dept[30];
char _class[20];
char grade[2];
scanf("%s %s %d %ld %s %s %s",&name,&sex,&age,&num,&dept,&_class,&grade);
fflush(stdin);
buffer=(stud *)malloc(sizeof(stud));
strcpy(buffer->name,name);
strcpy(buffer->sex,sex);
buffer->age=age;
buffer->student_num=num;
strcpy(buffer->dept,dept);
strcpy(buffer->_class,_class);
strcpy(buffer->grade,grade);
return buffer;
}
烦求各位帮忙看看问题出在哪里了

[解决办法]
贴上完整的代码会比较好。
[解决办法]
把结构体的代码贴上来,有可能是你的内存溢出了!

读书人网 >C语言

热点推荐