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));