从Simple arrayfire构造函数

时间:2016-10-01 00:16:29

标签: c++ arrayfire

我从调用一个简单的arrayfire构造函数中得到了一个Segmentation Fault。

#include <arrayfire.h>
int main(){
    af_array a;
    int N  = 10;
    dim_t dims = 10;
    af_randu(&a, N, &dims, f32);
    af::array b(a);
    return 0;
}

1 个答案:

答案 0 :(得分:3)

s.values是ArrayFire中的C-API函数。理想情况下,用户无需直接调用这些函数。

您需要致电af::randu()。所以你对randu的打电话是:

af_randu

以下只是回答问题,af_randu的C-API是

af:array b = af::randu(N, f32);

所以第二个参数是AFAPI af_err af_randu(af_array *out, const unsigned ndims, const dim_t *const dims, const af_dtype type ) (维数),在你的情况下是1.因此你对af_randu的调用是:

ndims

如果您正在做一个10x10的矩阵,那么你会做

af_randu(&a, 1, &dims, f32);

完全披露:我是ArrayFire的开发人员。