Поиск не дал мне ответа, хотя вполне возможно, что это было в ziglings и просто вылетело у меня из головы.
Я подключаю Vulkan как системную библиотеку через translate_c в Zig 0.17.0. Получилось такое объявление функции:
pub extern fn vkEnumeratePhysicalDevices(instance: VkInstance, pPhysicalDeviceCount: [*c]u32, pPhysicalDevices: [*c]VkPhysicalDevice) VkResult;
Не понимаю, что означает [*c]. Это лишь указание на то, что указатель должен ссылаться на первый элемент массива?
Следующий вариант наконец скомпилировался, хотя, подозреваю, существует более привычный способ это записать.
var adapters = try allocator.alloc(vulkan.VkPhysicalDevice, adapter_count);
_ = vulkan.vkEnumeratePhysicalDevices(instance, &adapter_count,
@ptrCast(&adapters[0]));
Заранее спасибо за любые подсказки!