Чтение из файла и сохранение в array

Я написал следующую программу для построчного чтения файла и сохранения его в массиве слов. На выходе должны быть два случайных слова из массива. Но на удивление массив слов содержит только последнее слово, прочитанное повторно. Любая помощь в том, что пошло не так?

int main(){
 int i = 0;
 char line_buffer[BUFSIZ];
 char* words[20];
 FILE *fp = fopen("input.txt", "r");
  while (fgets(line_buffer, sizeof(line_buffer), fp)) {
  //printf("%s", line_buffer); 
  words[i] = line_buffer;
  i = i + 1;
 } 
 printf("%d", i);
 int j = rand()%8;
    int k = (j+1)%8;
 printf("%s %s", words[j], words[k]); 
 fclose(fp);
 return 0;
}

input.txt

nematode knowledge
empty bottle
nevertheless
claustrophobia
metamorphosis
acknowledgement
impossibility
never gave up
6
задан Eli Bendersky 21 November 2010 в 08:53
поделиться