我正在研究 OpenCl 编程指南中的 HelloWorld 示例,当我尝试运行此函数 (clSetKernelArg) 时,我不断收到 EXC_BAD_ACCESS。我的函数的外观基本上是...
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/