Я пытался процедурно сгенерировать массив массивов массива. Имея дело с другими объектами в прошлом, я мог либо что-то вроде:
className * listName = (className*)malloc(numOfObjects*sizeOf(className))
или
className ** listName = (className**)malloc(numOfObjects*sizeOf(className*))
, а затем использовать для l oop, чтобы выделить каждую из вещей в списки и удалить их, когда я закончу с ними.
Однако это не работает с arrayfire. Я попытался сделать
af::array *Kernels;
Kernels = (af::array*)malloc(Count*sizeof(af::array));
for(int i = 0; i < Count; i++) {
Kernels[i] = af::range(i);
}
Позже я звоню:
free Kernels
Этот код компилируется, но при запуске его взломает sh. Вот что я получаю, когда происходит сбой:
завершается вызовом после выброса экземпляра 'af :: exception' what (): ArrayFire Exception (функция не поддерживает этот тип данных: 204): In функция af_err af_release_array (af_array) в файле src / api / c / array. cpp: 194 Неверный тип для аргумента 0
в функции af :: array & af :: array :: operator = (const af: : array &) В файле src / api / cpp / array. cpp: 771 Прервано (сброшено ядро)
Я ищу правильный синтаксис, чтобы делать то, что пытаюсь сделать, или альтернатива. Я немного погуглил и не нашел то, что искал.
Спасибо.