これは私の作業コードです:
size_t FileReader::Read(ByteVector& output)
{
output.resize(m_elementSize * m_blockSize);
size_t read = fread(&output[0], m_elementSize, m_blockSize, m_file);
output.resize(read);
return read;
}
ただし、以前はコードを試しましたoutput.reserve(m_elementSize * m_blockSize);
私の知る限りreserve
、コンテナのメモリに場所が見つかりました。resize
同じことを行い、メモリをゴミ箱から特定の値に変更し、コンテナのサイズを変更します。
fread
最初のパラメーターはvoid *
で、それは私の質問と同じです。unsigned char *
呼び出し中に例外が発生したのはなぜですかfread
。
なぜそれが起こっているのですか?void ポインタを取り、クラスfread
を使用してメモリに書き込まないためです。vector
PSは言及するのを忘れていましたtypedef std::vector<unsigned char> ByteVector