Нужно записать в бинарный файл число типа int, хранящееся в переменной mass_size
fin.write((char *)&mass_size, sizeof(int))
Для чего нужно (char *) при взятии адреса &mass_size?
Используемый вами метод write, очевидно, принимает параметр типа char * или что-то в этом роде. Так как неявные преобразования указателей в/из типа char * в С++ не поддерживаются, их приходится прописывать явно. (char *) - это и есть явное преобразование указателя &mass_size к типу char *. Кто-то, возможно, заметит, что в С++ коде разумнее было бы выразить его как reinterpret_cast<char *>(&mass_size).
Например, метод write стандартного класса std::ostream принимает именно const char *. Почему именно const char *, а не const void *? Вероятнее всего для того, чтобы подчеркнуть тот факт, что метод write - это НЕ метод для записи в поток именно бинарных данных, а метод для посимвольной записи именно символьной последовательности явно указанной длины. Если поток открыт в текстовом режиме, символы этой последовательности будут потенциально подвергнуты соответствующим преобразованиям, что делает такую запись уже совсем не "бинарной". "Бинарность" записи определяется именно свойствами самого потока, а не [только] выбранным для записи методом.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости