Opencl 检查cl_mem对象是否有效

Opencl 检查cl_mem对象是否有效,opencl,Opencl,我想做的事情对我来说似乎很简单,但目前我觉得使用OpenCL是不可能的: 我想在释放某些cl_mem对象之前检查它是否实际有效: cl_mem someimage; if ( isvalid(someimage) ) clReleaseMemObject(someobject); 原因很简单:如果我在没有初始化某个映像的情况下调用clreleasemobject,我的程序就会崩溃。我可以试试。。。抓住电话,但我觉得这有点脏 如果没有初始化,任何像clGetImageInfosomeimage这

我想做的事情对我来说似乎很简单,但目前我觉得使用OpenCL是不可能的:

我想在释放某些cl_mem对象之前检查它是否实际有效:

cl_mem someimage;
if ( isvalid(someimage) ) clReleaseMemObject(someobject);
原因很简单:如果我在没有初始化某个映像的情况下调用clreleasemobject,我的程序就会崩溃。我可以试试。。。抓住电话,但我觉得这有点脏

如果没有初始化,任何像clGetImageInfosomeimage这样的调用也会崩溃

如何实现isvalidsomeimage

非常感谢您的提示, Jakob

在Khronos论坛上,我了解到cl_mem是一种指针类型,因此可以保存初始化为nullptr,并在发布或查询之前进行检查。当然,堆栈上完全未初始化的指针会出现错误

多亏了诺兹