指针运算出错(OpenCL)

时间:2012-01-19 14:20:51

标签: opencl

有人可以解释一下为什么这段代码不起作用吗?

__kernel void foo(__global const void* a)
{
  __global const uchar* currentPosition = (__global uchar*) a;

  // Update the position
  currentPosition += 4;
}

当我尝试在增量后读取currentPosition的值时,得到与不进行算术时相同的结果。

为什么会这样?

谢谢。

2 个答案:

答案 0 :(得分:1)

这可能是你声明currentPosition的'const'关键字。 C ++不允许您修改值。您在声明时已经设置了currentPosition。

答案 1 :(得分:0)

我昨天晚上发现了这个错误。问题不在于指针算法,而在缓冲区 a 中的数据对齐。

对不起家伙,但我是OpenCL的新手:(