arrayfire、指针和 C++

arrayfire, pointers, and c++

我一直在尝试按程序生成一个 arrayfire 数组。 过去处理其他对象时,我可以这样:

className * listName = (className*)malloc(numOfObjects*sizeOf(className))

className ** listName = (className**)malloc(numOfObjects*sizeOf(className*))

然后使用 for 循环分配列表中的每个事物,并在我完成后删除它们。

但这不适用于 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

此代码可以编译,但当我 运行 它时会崩溃。 这是我在崩溃时得到的:

terminate called after throwing an instance of 'af::exception' what(): ArrayFire Exception (Function does not support this data type:204): In function af_err af_release_array(af_array) In file src/api/c/array.cpp:194 Invalid type for argument 0

In function af::array& af::array::operator=(const af::array&) In file src/api/cpp/array.cpp:771 Aborted (core dumped)

我正在寻找正确的语法来完成我想做的事情,或者寻找替代方法。 我在谷歌上搜索了很多,但没有找到我要找的东西。

谢谢。

看来我终于找到了解决办法。似乎使用这个: std::vector<af::array> Kernels; 得到了我想要的所有功能。事实证明,使用双指针可以编译,但 arrayfire 中的函数并不是为处理 af::array* 对象指针而构建的。