Мой файл содержит 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);
}