Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Memory fault when inserting output for an std::basic_ostream instantiation: (2 Items)
   
Memory fault when inserting output for an std::basic_ostream instantiation  
I have the following example:

#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <ostream>

class File_ostream final : public std::basic_ostream<char, std::char_traits<char>>
{
};

int main()
{
    const std::string input_file{"file_tests/test.txt.gz"};
    std::ifstream ifs{input_file, std::ios_base::in | std::ios_base::binary};

    File_ostream file_os{};

    file_os << ifs.rdbuf(); // Memory fault (core dumped) 
}


The program always crashes when inserting output to file_os and creates a core dump. 

Do you have any explanation? hint?
Re: Memory fault when inserting output for an std::basic_ostream instantiation  
Solved by initializing the internal state of the stream: https://en.cppreference.com/w/cpp/io/basic_ios/init