arrayfire, pointers, and c++



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

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

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

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

但是,这不适用于阵列火。 我尝试过做

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

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

在抛出"AF::异常"实例后终止调用 what((: ArrayFire Exception(函数不支持此数据类型:204(: 在函数af_err af_release_array(af_array( 在文件中 src/api/c/array.cpp:194 参数 0 的类型无效

In function af::array& af::array::operator=(const af::array&( 在文件中 src/api/cpp/array.cpp:771 已中止(核心已转储(

我正在寻找正确的语法来做我正在尝试做的事情或替代方案。 我已经用谷歌搜索了很多,但没有找到我想要的东西。

谢谢。

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

相关内容

  • 没有找到相关文章

最新更新