У меня есть функция, которая принимает параметр void * buffer. Эта функция (которая предоставляется HDF here.По моему мнению, она считывает информацию из набора данных в буфер. У меня это работает, но только если я создаю 3D-массив с постоянными значениями. Мне нужно иметь возможность сделать это с использованием значений, переданных в пользователем Вот начало этой функции:..Создание 3D-массива в C++ с использованием переданных параметров
void* getDataTest(int countX, int countY)
{
int NX = countX;
int NY = countY;
int NZ = 1;
int data_out[NX][NY][NZ]; //I know this doesn't work, just posting it for reference
//.
//. more code here...
//.
// Read function is eventually called...
h5Dataset.read(data_out, H5::PredType::NATIVE_INT, memspace, h5Dataspace);
}
Это постоянно терпит неудачу на меня, однако, моя реализация previoud, что используются значения Int константные при создании массива data_out работал отлично:
void* getDataTest(int countX, int countY)
{
const int NX = 5;
const int NY = 5;
const int NZ = 1;
int data_out[NX][NY][NZ];
//.
//. more code here...
//.
// Read function is eventually called...
h5Dataset.read(data_out, H5::PredType::NATIVE_INT, memspace, h5Dataspace);
}
Это прекрасно работает. По моему мнению, эта функция (которой у меня нет ntrol) требует данных с одинаковой размерностью (например, трехмерный массив будет работать только с трехмерным массивом, а 2D-массив будет работать только с 2D-массивом при копировании по данным в буфер).
Итак, моя ключевая проблема заключается в том, что я не могу понять, как создать 3D-массив, который удовлетворяет функция чтения (параметр функции - это пустота *, но я не могу получить ничего, кроме 3D-массива). Я пробовал 3D целочисленный массив представляется как массив массивов массивов с использованием:
int*** data_out = new int**[NX];
, но это не удалось, а также. Любые идеи о том, как я могу создать массив 3D int формы int arrayName [непостоянное значение] [непостоянное значение] [непостоянное значение]? Я знаю, что вы не можете создать массив с использованием непостоянных значений, но я добавил их в попытке прояснить мою цель. Должен ли быть способ в C++ использовать параметры функции в качестве значений для создания экземпляра массива?
Я думаю, что это метод, который вы хотели сделать ссылку: https://support.hdfgroup.org/HDF5/doc/cpplus_RM/class_h5_1_1_data_set.html#a2f0278a519122419ae9981666277c9bb – Creak
Спасибо, Я обновил сообщение. – Roka545