我正在学习OpenCl编程指南中的HelloWorld示例,当我尝试运行这个函数(clSetKernelArg)时,我一直获得EXC_BAD_访问权限。我的功能基本上是。。。

clSetKernelArg(mKernel, 0, sizeof(cl_mem), mMemObject[0]);

在调试器中,所有内容看起来都是实例化的。括号里没有空的,我完全没主意了。任何帮助都将不胜感激。

最佳答案

如果您正在经历一个OpenCL Hello World示例,我几乎可以肯定您没有

cl_mem * mMemObject[foo]

这将是唯一使mMemObject[0]声明合法的事情。EXC_BAD_ACCESS意味着您正在取消对无效指针的引用,这意味着您的mMemObject只是cl_mem。
如果您仅使用clúmem mMemObject声明mMemObject,则此操作有效:
clSetKernelArg(mKernel, 0, sizeof(cl_mem), &mMemObject);

关于c++ - clSetKernelArg抛出EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22490090/

10-12 16:08