我正在尝试从和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);
}发布于 2022-02-04 16:32:28
解决方案:
&freq_collect应该是freq_collect.memptr()
.memptr()是指向内存的原始指针,是存储数据的正确方法。
https://stackoverflow.com/questions/70989268
复制相似问题