相关疑难解决方法(0)

提升原始C数组的序列化,反序列化

我正在尝试序列化和反序列化原始C指针及其数据,下面的示例.它似乎序列化很好,但我不确定如何使其反序列化 - 当我反序列化时它只是因内存访问冲突异常而崩溃.我想这是因为它不知道如何反序列化它,但我在哪里指定它?

使用矢量不是一种选择,在非常大的原始数据量中它很慢

#include <stdint.h>
#include <string>
#include <iostream>
#include <fstream>
#pragma warning (push) 
#pragma warning( disable : 4244 ) 
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/array.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
#pragma warning (pop) 

struct Monkey
{
    uint32_t num;
    float* arr;

};


namespace boost
{
    namespace serialization
    {
        template<class Archive>
        void serialize(Archive & ar, Monkey& m, const unsigned int version)
        {
            ar & m.num;
            ar & make_array<float>(m.arr, m.num);
        }
    }
}


int _tmain(int argc, _TCHAR* argv[])
{
    const …
Run Code Online (Sandbox Code Playgroud)

c++ serialization boost boost-serialization

5
推荐指数
1
解决办法
4853
查看次数

标签 统计

boost ×1

boost-serialization ×1

c++ ×1

serialization ×1