我目前在学习Vulkan。在其中一个教程中,我看到了一个大致执行以下操作的函数:
#define SOMESTRING "Hello World!"
std::vector<const char*> buildVector() {
std::vector<const char*> vec;
vec.push_back(SOMESTRING);
return vec;
}
当我看到这个时,我在想:这是定义的行为吗?字符串"Hello World!"的内容不会位于栈上并在函数返回后无效吗?如果这是未定义行为,正确的做法是什么?不幸的是,由于Vulkan API的原因,使用std::string不是一个选项。
const char * stuff() { return SOMESTRING; }
相同。这里的向量没有任何神奇的作用。 - juanchopanza