Microsoft Visual C++ 2008 で H5 ファイルからデータセットを読み込んでいます。int 型と double 型のデータではすべて正常に動作しますが、文字列に遭遇すると問題が発生します。H5 ファイルには、固定長 24 の 18 個の文字列があります。私のコードは次のとおりです。
StrType strdatatype(PredType::C_S1, 24);
char *buffer1[18];
DataSet datasetCurveNames = riskFactorsH5.openDataSet("/gstrCurveNames");
datasetCurveNames.read(&buffer1, strdatatype);
実行時、buffer1 は不正なポインターでいっぱいになります。別の方法として、H5T_VARIABLE を使用して可変長文字列を変更して管理しようとしました。
StrType strdatatype(PredType::C_S1, H5T_VARIABLE);
これも失敗します。誰かがこの問題に光を当てることができれば、それは大歓迎です。
乾杯、ルーカス