テキストファイルから各行を読み取り、それを標準出力に出力したいこのコードがあります。理由もなく、ファイルの最後の行のみをその文字配列に保存します。理由はありますか(いくつかの説明があります)?
9 int main(){
10 FILE * f;
11 char buffer[255];
12 char * arr[255];
13 int i=0,n;
14
15 f = fopen("input.txt", "r");
16 while(1){
17 if(fgets(buffer,255,f) != NULL ){
18 arr[i++] = buffer;
19 }else break;
20 }
21 n=i;
22 for(i=0;i<n;i++){
23 printf("%s",arr[i]);
24 }
25
26 fclose(f);
27 return 0;
28 }