从HDF5矢量填充armadillo矢量



我正试图从HDF5文件中读取一个向量到Armadillo向量中,但在读取阶段我一直遇到seg错误。我不确定我错过了什么,它看起来很直接,但我想不是。。。如有任何帮助,将不胜感激

int main(void)
{
H5::H5File fid = H5::H5File("element_pattern.h5",H5F_ACC_RDONLY);
H5::DataSet   dataset    = fid.openDataSet("freq_collect");
H5::DataSpace dataspace  = dataset.getSpace();
H5::StrType   datatype   = dataset.getStrType();
const int rank = dataspace.getSimpleExtentNdims();
hsize_t dims_out[rank];
const int ndims = dataspace.getSimpleExtentDims( dims_out, NULL);

vec freq_collect(zeros<vec>(dims_out[0]));

dataset.read(&freq_collect, datatype, dataspace);

}

解决方案:

&freq_collect应为freq_collect.memptr()

.memptr()是指向内存的原始指针,是存储数据的正确方式

相关内容

  • 没有找到相关文章

最新更新