Я не думаю, что это возможно напрямую.
Вы можете легко скопировать ваш массив структур в три массива в цикле:
int a[n];
double b[n], c[n];
for (int i = 0; i < n; i++)
{
a[i] = s[i].a;
b[i] = s[i].b;
c[i] = s[i].c;
}
при условии, что s
является массивомstruct { int a; double b; double c; }
(постоянного) размера n
, но у меня есть ощущение, что вы ищете прямой путь HDF5 ...
Ясно, что гиперслаб не будет работать, так как я считаю, что составной типатомное.В любом случае составной тип подразумевает, что данные хранятся в файле состав , поэтому, вероятно, более эффективно читать его таким образом.Единственное ограничение в решении, которое я дал вам, - это память, если ваш массив действительно большой.На современном компьютере все должно быть нормально;)