我使用的结构如下。
struct domain_data
{
int *no_h_domains,
*no_v_domains,
*domain_hsize,
*domain_vsize,
*domain_hstep,
*domain_vstep;
struct domain_pixels
{
int dom_x, dom_y;
double sum,sum2;
int sym;
} ***pixel;
} domain;
但是当我尝试
时domain.pixel =(struct domain_pixels ***)malloc(i * sizeof(struct domain_pixels **));
然后它会出现以下错误。
错误C2440:' =' :无法转换为' domain_pixels '到' domain_data :: domain_pixels '
和
类型" domain_pixels *"无法分配到" domain_data :: domain_pixels * "
类型的实体
但是在win32应用程序中,相同的代码执行得非常好。
任何人都可以告诉我,我是否可以在opencl中执行此操作?如果是,那怎么样?
答案 0 :(得分:1)
问题不在于结构结构,问题在于结构的指针和三指针。
在OpenCL中不允许传递指针。 即使没有它,它也永远不会起作用,因为OpenCL中不允许使用malloc。
在尝试复制粘贴怪物C代码之前,请先阅读指南和教程,以期直接使用它。
答案 1 :(得分:0)
应该可以使用OpenCL 2.0&具有细粒缓冲区的SVM。 英特尔计划通过BDW启动SVM支持。
答案 2 :(得分:0)
当我创建另一个OpenCl项目并在那里复制相同的代码时,该错误被删除!所以感谢大家的回复!