Dear list users,

can anyone help me with the following predicament? I want to create a compound datatype that contains an array. However, apparently the size is not what I expect and thus exceeds the dataspace.

Additional info: I use the C++ wrappers that come with HDF5 version 1.8.4.

Here's the error:

HDF5-DIAG: Error detected in HDF5 (1.8.4) thread 3070088912:
#000: ../../../src/H5Tcompound.c line 374 in H5Tinsert(): unable to insert member
    major: Datatype
    minor: Unable to insert object
#001: ../../../src/H5Tcompound.c line 466 in H5T_insert(): member extends past end of compound type
    major: Datatype
    minor: Unable to insert object
terminate called after throwing an instance of 'H5::DataTypeIException'

And here's the code I try to run:

// std
#include <cstdlib>
#include <iostream>

// hdf5
#include "H5Cpp.h"

/*
 *
 */
int main(int argc, char** argv) {
    using std::cout;
    using std::endl;
    size_t size(100);
    H5::CompType network_type(size);
    H5std_string member_name("matrix");
    size_t offset(0);
    hsize_t* dimensions = new hsize_t[1];
    dimensions[0] = size;
    H5::ArrayType links(H5::PredType::NATIVE_HBOOL, 1, dimensions);
    cout << sizeof(H5::ArrayType) << endl;
    network_type.insertMember(member_name, offset, links);
    return (EXIT_SUCCESS);
}

TIA,
Moritz
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to