Ahoj, testuju memcpy tak, že jakýkoliv vektor se pokusím uložit do vektoru s hodnotami char a ten zapíšu na disk a nakonec načtu data z disku do vectoru s char hodnotami a jeho data načtu do jakéhokoliv vektoru. Chtěl bych takhle načítat a ukládat data z disku přímo bez toho, abych algoritmus zpomaloval pomocí for syntaxe. Akorát to nefunguje podle představ a načte to špatně.
struct Float4
{
float x;
float y;
float z;
float w;
}
class CImage
{
public:
void LoadFile(const std::wstring& filename)
{
std::ifstream fin(filename, std::ios::binary);
fin.seekg(0, std::ios_base::end);
int size = (int)fin.tellg();
fin.seekg(0, std::ios_base::beg);
std::vector<char> data(size);
/*mHeight = 256;
mWidth = 256;
mSize = mHeight * mWidth;*/
fin.read(&data[0], size);
mImage.resize(size / sizeof(Float4));
memcpy(&mImage[0], &data[0], size);
fin.close();
}
void SaveFile(const std::wstring& filename)
{
std::ofstream fout(filename);
std::vector<char> data(mImage.size() * sizeof(Float4));
memcpy(&data[0], &mImage[0], data.size());
fout.write(&data[0], data.size());
fout.close();
}
private:
std::vector<Float4> mImage;
}