Я пишу код, чтобы написать vector
в файл. Моя цель - записать последнюю половину vector
в файл сначала, а затем первую половину на основе смещения. Код ниже дает мне ошибку сегментации.Напишите последнюю половину вектора в std :: ofstream
std::vector<uint8_t> buffer_(1000); // the vector is filled with values
int offset_ = 300;
std::ofstream output_file (file_name.c_str(), std::ofstream::out | std::ofstream::binary);
if (output_file.is_open()) {
output_file.write(reinterpret_cast<const char*>(&buffer_[offset_]), (buffer_.size() -offset_)*sizeof(uint8_t));
// segmentation fault on the line above
output_file.write(reinterpret_cast<const char*>(&buffer_[0]), (offset_)*sizeof(uint8_t));
}
Может кто-нибудь сказать мне, что не так с кодом?
Ваш отладчик может. Вы использовали его еще? –
"' * sizeof (uint8_t) '" o.O Я приветствую создание родового кода, который является надежным для более поздних изменений типа, но так как вы жестко закодировали 'uint8_t', все равно это совершенно без цели. –