Предупреждение при возврате указателя - PullRequest
0 голосов
/ 15 апреля 2020

Мой файл содержит 1 слово в каждой строке (я знаю номер строки). Я хочу прочитать случайную строку, сохранить ее адрес в указателе и вернуться к основной функции. Есть 1 предупреждение (19 | предупреждение: возвращение делает указатель из целого числа без приведения [-Wint-преобразование] |), и когда я запускаю программу, она ничего не печатает.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

char *word(char *file, char *str);

int main() {
  char *str;
  printf("%s",word("words.txt",str));
}

char *word(char *file, char *str) {
  int end, loop, line;

  FILE *fd = fopen(file, "r");
  if (fd == NULL) {
    printf("Failed to open file\n");
    return -1;
  }

  srand(time(NULL));
  line = rand() % 100 + 1;

  for (end = loop = 0; loop < line; ++loop) {
    if (0 == fgets(str, sizeof(str), fd)) {
      end = 1;
      break;
    }
  }
  if (!end)
    return (char*)str;
  fclose(fd);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...