Не думаю, что проблема с функцией gets(), поля структуры - это char массивы с немалым размером, и мои тестовые значения не выходят за границы(я ввожу их от балды, но они удовлетворяют всем условиям).
И вдобавок ошибка возникает при открытии потока, а не при записи в массив - когда вызывается fopen() во второй функции.
Что самое странное - эта ошибка не всегда срабатывает, порой всё работает нормально, порой нет. И в этом случае уже возникает ошибка при 2-ом вызове 1-ой функции в строке с realloc().
А порой и эта проблема сама собой исчезает, но тогда уже данные при выводе искажаются.
Походу я реально не понимаю чего-то в работе с памятью.
Если что я пытаюсь реализовать базу данных с помощью записи в файлы массива структур, и это две функции для работы с БД - добавить запись и вывести все записи
Код структуры:
struct member { // структура члена сборной команды по футболу
char full_name[60]; // ФИО
char club[30];
char role[12]; // goalkeeper, defender, midfielder, striker
int age;
int matches;
int goals_scored;
};
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
И вдобавок ошибка возникает при открытии потока, а не при записи в массив - когда вызывается fopen() во второй функции.
Что самое странное - эта ошибка не всегда срабатывает, порой всё работает нормально, порой нет. И в этом случае уже возникает ошибка при 2-ом вызове 1-ой функции в строке с realloc().
А порой и эта проблема сама собой исчезает, но тогда уже данные при выводе искажаются.
Походу я реально не понимаю чего-то в работе с памятью.
Если что я пытаюсь реализовать базу данных с помощью записи в файлы массива структур, и это две функции для работы с БД - добавить запись и вывести все записи
Код структуры: