c++ - clSetKernelArg 抛出 EXC_BAD_ACCESS

标签 c++ c opencl

我正在研究 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/

相关文章:

c++ - NAN 传播和 IEEE 754 标准

c++ - UNIX 系统调用的排序规范

c - 如何将标准输出重定向到文件——这段代码有什么问题?

C : typedef struct name {. ..}; VS typedef struct{...} 名称;

c++ - OpenCL NDRange 用法 - 内核仅更改输出缓冲区的一部分

opengl - OpenCL/OpenGL 与多个 GPU 互操作

c++ - c++11 中的 boost::variant 和多态性

c++ - C++ 中是否有任何跨平台线程库?

c - 如何让子进程交替访问和更改相同的值

检查宏参数是否为文字