Я программирую (и действительно близок к завершению) программу CLI, чтобы проверить словарный запас пользователя или любой набор вопросов и ответов, которые он / она захочет определить.
Полный исходный код на github: https://github.com/megamasha/Vocab-Tester
Загрузка из файла и сохранение в файл обрабатываются отдельными функциями, обе вне main(). На данный момент они находятся в одном и том же исходном файле, но я хотел бы знать, как это сделать как а) в файле, так и б) в случае, если они попадают в отдельный файл операций базы данных.
Я хочу, чтобы пользователь мог сохранять в файл, который он загрузил последним, поэтому я хочу, чтобы моя функция loaddatabase()
определяла глобальный char * для имени файла, к которому затем может получить доступ функция savedatabase()
.
Если я объявляю char * вне какой-либо функции, он доступен только для чтения, и попытка записать в него имя файла вызывает segfault. Если я объявлю его в функции loaddatabase()
, savedatabase()
не сможет получить к нему доступ.
Позволит ли объявление статической переменной другим функциям получить к ней доступ, или, если нет, как я могу разрешить двум функциям обращаться к одному и тому же char *?