【发布时间】:2017-03-27 20:36:29
【问题描述】:
我想这是一件非常微不足道的事情,但我被卡住了,找不到问题所在:
std::vector<const char*> getExtensions()
{
std::vector<const char*> extensions;
// let's get a list of available extensions from Vulkan
uint32_t availableExtensionCount = 0;
vkEnumerateInstanceExtensionProperties(nullptr, &availableExtensionCount, nullptr);
std::vector<VkExtensionProperties> availableExtensions(availableExtensionCount);
vkEnumerateInstanceExtensionProperties(nullptr, &availableExtensionCount, availableExtensions.data());
for (const VkExtensionProperties& extension : availableExtensions)
{
extensions.push_back(extension.extensionName);
}
return extensions;
}
所以如果我从这里调用它:
bool checkSupportedExtensions(const std::vector<const char*> extensions)
{
// make sure that we support all requested extensions
bool found;
for (const auto& availableExtenstion : getExtensions())
{
availableExtensions 充满了胡言乱语。
我猜我在 getExtensions 函数中插入了 char*,该函数一执行就被删除,对吧?如果是这样,如何将字符串保存在向量中?
谢谢!
【问题讨论】:
-
使用
std::string而不是char *。
标签: c++ function memory vector