Узнать количество структур в файле и динамически выделить память под них - C (СИ)
Формулировка задачи:
Доброго времени суток. Начал писать некую программу, работающую со структурами. Появились такие вопросы:
1) Как можно узнать количество структур в файле и, соответственно, динамически выделить память под них?
2) Какие есть стандартные средства для открытия файлов? В каких режимах можно открывать файлы?
Убедительно прошу предоставить примеры кода к каждому вопросу.
Решение задачи: «Узнать количество структур в файле и динамически выделить память под них»
textual
Листинг программы
itemsize = sizeof students[0]; nitems = sizeof students / itemsize; retval = fwrite(students, itemsize, nitems, ofp); assert(retval == nitems && "writing to file");
Объяснение кода листинга программы
students- это массив структур, содержащих информацию о студентах.itemsize- это переменная, которая хранит размер одной структуры в массивеstudents.nitems- это переменная, которая хранит количество структур в массивеstudents.ofp- это файловый указатель, который указывает на файл, в который нужно записать данные.retval- это переменная, которая хранит результат операции записи в файл.assert- это функция, которая проверяет выполнение условия и в случае его невыполнения генерирует ошибку.writing to file- это сообщение об ошибке, которое выводится при возникновении ошибки записи в файл.