>>541
でも>>538のプログラムは一旦ファイルを行単位で全部メモリに読み込んでない?
で行の配列へのポインタをソートしている

もしメモリを超えるサイズのファイルがあったら動かないよ