sigsegv при записи в файл

При попытке записи в файл получаю ошибку segmentation failed (core dumped)

        std::string filename{"output"};
        std::fstream savef;
        int ver{1};
        savef.open(filename,std::fstream::out | std::fstream::binary | std::fstream::trunc);
        savef.write(reinterpret_cast<char*>(ver),sizeof(ver)); //Здесь выбивает ошибку (если верить gdb)

Ответы (1 шт):

Автор решения: KoVadim

Вы пытаетесь скастить int (который обычно 4 байта) к указателю на char* который обычно 8 байт. А потом по этому адресу (в котором в меньших 4 байтах записано 1, в старших - кто его знает), прочитать 4 байта. То, что оно просто падает - это ещё хорошо.

Но если уже так писать, то где то так

savef.write(reinterpret_cast<char*>(&ver),sizeof(ver)); 
→ Ссылка