在调用clGetDeviceInfo时,意图首先读取设备信息参数的返回内容长度,但返回CL_INVALID_VALUE.代码如下:
char* ext_data;
size_t ext_size=100;
err=clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS,
sizeof(ext_data), NULL, &ext_size);
if(err!=CL_SUCCESS){
printf("couldn't read device extension data %d\n",err);
exit(1);
}
ext_data = (char*)malloc(ext_size + 1);
ext_data[ext_size] = '\0';
clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS,
ext_size + 1, ext_data, NULL);
如上代码会在蓝色代码处返回如标题所示的错误代码,原因是应当把标红处设为0.