【recursive 】 再 帰 【リカーシブ】
■ このスレッドは過去ログ倉庫に格納されています
0039デフォルトの名無しさん
NGNGファイルから一行取得する関数。
ファイルの一行目に何文字あろうと、
全部がんばってとってきてヒープに格納するやつ
char* fstralloc( FILE* istream ){return __fstralloc( istream, 0 );}
char* __fstralloc( FILE* istream, int readsize )
{
int i = 0;
char linebuf[BUFSIZ+1];
do{
linebuf[i] = (char)fgetc( istream );
if( linebuf[i]==EOF || linebuf[i]=='\n' ){
linebuf[i]='\0';
return strcpy( &(((char*)malloc( (readsize+i+1)*sizeof(char) ))[readsize]), linebuf ) - readsize;
}
}while(BUFSIZ>++i);
return memcpy( &__fstralloc( istream, readsize+BUFSIZ )[readsize], linebuf, BUFSIZ ) - readsize;
}
あんま、再帰をうまく利用してるって感じはしないけど。
しかし、今見るとなにやってるかぜんぜんわからん(藁
■ このスレッドは過去ログ倉庫に格納されています