我使用的结构如下。
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* domain_pixels (struct domain_pixels **));
然后给出以下错误。
错误C2440:'=‘:无法从'domain_pixels ’转换为'domain_data::domain_pixels‘
和
"domain_pixels *“类型的值不能分配给"domain_data::domain_pixels *”类型的实体
但是相同的代码在win32应用程序中执行得非常好。
有人能告诉我,我是否能在opencl中做到这一点?如果是,那怎么做?
发布于 2014-05-13 01:15:01
问题不在于结构的结构,问题在于结构的指针和三指针。
在OpenCL中不允许传递指针。即使没有这一点,它也不会工作,因为malloc在OpenCL中是不允许的。
在试图复制一个怪物C代码之前,请阅读指南和教程,希望它能直接工作。
发布于 2014-05-12 19:52:14
它应该是可行的使用OpenCL 2.0和支持向量机与细粒缓冲.英特尔正计划开始支持BDW的支持。
发布于 2014-05-14 21:55:24
当我创建另一个OpenCl项目并在那里复制相同的代码时,这个错误就被删除了!谢谢大家的回复!
https://stackoverflow.com/questions/23613864
复制