Я пишу простую функцию, которая принимает в качестве входных 3 уже открытых FILES, затем просматривает каждый символ в файле, заполняя массив символов до тех пор, пока не будет достигнут пробел или не будет указана новая строка. найденный. Тем не менее, мой метод заполнения массива продолжает давать мне Segmentation fault
, и я не совсем уверен, почему. На данный момент я просто пытаюсь напечатать, чтобы утешить слова, которые были заполнены в массиве word [], а затем очистить его с помощью memset для следующего слова.C Чтение слов из текстового файла
hash_table_t training(FILE *D1, FILE *D2, FILE *D3, int size)
{
char *word[200];
char c;
int i = 0;
while ((c = fgetc(D1)) != EOF)
{
while (((c>='a') && (c<='z')) || ((c>='A') && (c<='Z')))
{
//add to char array
*word[i++] = c;
}
if(c == ' ' || c=='\n')
{
//hash word (print chars for now)
for (i=0; *word[i] != ' '; i++)
{
printf("%c", *word[i]);
}
}
memset (word, ' ', 20);
}
fclose(D1);
fclose(D2);
fclose(D3);
}
Вам также нужно будет изменить использование слова «word» в другом месте. –
@ScottHunter благодарит за напоминание. Сообщение слишком быстро. – SSC