Прямо сейчас я дважды вызываю clGetPlatformInfo. Первый раз получить размер результата, а второй - получить результат. Если я хочу получить 20 частей информации, это означает, что я должен позвонить 40 раз (80 строк кода). Есть ли лучший способ сделать это?Каков правильный способ вызова clGetPlatformInfo?
clGetPlatformInfo Пример
char *profile = NULL;
size_t size;
clGetPlatformInfo(platforms[0], CL_PLATFORM_PROFILE, NULL, profile, &size); // get size of profile char array
profile = (char*)malloc(size);
clGetPlatformInfo(platforms[0], CL_PLATFORM_PROFILE,size, profile, NULL); // get profile char array
cout << profile << endl;
clGetDeviceInfo Пример
size_t size;
char *vendor = NULL;
clGetDeviceInfo(devices[0], CL_DEVICE_VENDOR, NULL, NULL, &size);
vendor = (char*)malloc(sizeof(char)*size);
clGetDeviceInfo(devices[0], CL_DEVICE_VENDOR, size, vendor, NULL);
cout << vendor << endl;
Вы всегда должны позвонить clGetDeviceInfo дважды? Как только получить размер, и в другое время получить параметр-val (учитывая размер)? –