https://github.com/noprops/RRGCodingAndCrypto
cocos2d-x v3で使える、NSCodingのようなライブラリを作っているのですが、
c配列を扱う時に、問題が生じています。
c配列をエンコードする際には、

archiver->encodeArray<int>(_intArray,size,"key");

として、arrayをcocos2d::Dataにコピーし、
そのデータをbase64encodeしてvalueMapに入れて保存しています。

template <typename T>
void Encoder::encodeArray(T* array, int size, const std::string& key)
{
    cocos2d::Data data;
    data.copy((unsigned char*)array, sizeof(T) * size);
    encodeData(data, key);
}
void Encoder::encodeData(const Data& data, const string& key)
{
    char* encodedData = nullptr;
    base64Encode(data.getBytes(),
                 static_cast<unsigned int>(data.getSize()),
                 &encodedData);
    _valueMap[key] = encodedData;
    if (encodedData) {
        free(encodedData);
    }
}

arrayのサイズが小さい時にはこのやり方でできるのですが、
サイズが70以上など大きくなると、decodeの時にうまくいきません。

Data Decoder::decodeData(const string& key)
{
    if (_valueMap.find(key) == _valueMap.end()) {
        return Data::Null;
    }

    const char* encodedData = _valueMap.at(key).asString().c_str();
    CCLOG("encodedData = %s", encodedData);
    //"encodedData ="と表示
    unsigned char* decodedData = nullptr;
    int decodedDataLen = base64Decode((unsigned char*)encodedData,
                                      (unsigned int)strlen(encodedData),
                                      &decodedData);
    CCLOG("decodedDataLen = %d", decodedDataLen);
    //"decodedDataLen = 0"と表示
    if (decodedData) {
        Data data;
        data.fastSet(decodedData, decodedDataLen);
        return data;
    } else {
        return Data::Null;
    }
}

template <typename T>
T* Decoder::decodeArray(const std::string& key)
{
    //CCLOG("%s", __PRETTY_FUNCTION__);
    cocos2d::Data data = decodeData(key);
    if (data.isNull()) {
        CCLOG("data is null.");
        return nullptr;
    }
    ssize_t size = data.getSize();
    T* array = new T[size];
    memcpy(array, data.getBytes(), size);
    return array;
}

"encodedData ="
"decodedDataLen = 0"
"data is null."
と表示されます。
valueMapの中からデータは取り出せるのですが、
なぜか中身がなくなっています。

どなたか解決方法がわかりましたら、教えてください。
または、c配列を保存するもっといいやり方があれば、教えてください。
よろしくお願い致します。