69,373
社区成员
发帖
与我相关
我的任务
分享
char * readline( FILE *fp )
{
staic char* buf=NULL; //静态变量
int size=256; //初始分配内存大小
int len=0;
char ch;
if(buf!=NULL) //如果buf不空,释放掉原来的内存,重新分配。
{
free(buf);
buf=NULL;
}
buf=(char *)malloc( size* sizeof(char) );
if(buf==NULL)
{ fprintf(2,"内存分配失败") ;
exit(0);
}
while( (ch=fgetc(fp)) != EOF ) //每次读一个字符
{
if(len>size-1)
{
size=size*2;
buf=(char *)realloc(buf, size* sizeof(char) );
if(buf==NULL)
{ fprintf(2,"内存分配失败") ;
exit(0);
}
}
if(ch=='\n')
break;
buf[len++]=ch;
}
buf[len]='\0';
return buf;
}