Задача состоит в том, чтобы открыть файл, считать с него массив слов, разделенных запятой, и произвести с ним некоторые действия. Имя файла должно быть введено пользователем. В коде указано, в каком месте возникают ошибки сегментации, объясните, пожалуйста, почему, и помогите исправить.
| Код |
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h>
int readFile (char *fileName, char **word) { //Процедура должна открыть файл и считать с него массив слов. На выходе нужно n - число слов и word - массив слов FILE *read; int n =0; word = new char *[30]; //Открываем файл для чтения read = fopen (fileName, "rt"); //Если в main сделать char fileName[10];,то строка считывается, но тогда не может открыться файл. //Проверяем, открылся ли if (read==NULL) { //Выводим сообщение об ошибке printf("Error while opening file to read!"); getch(); //выходим из процедуры return 0; } //Читаем файл по словам, разделенным запятой while (!feof(read)) { fscanf(read, "%s,",word[n]); //Прибавляем нумерацию слов n++; } return n; }
int main(){ FILE *write; char *fileName; char **word = new char *[30]; int n; //Просим ввести имя файла printf ("Input file name to read: "); scanf("%s", fileName); //Здесь ошибка сегментации n = readFile(fileName, word); }
|
|