【发布时间】:2019-05-16 06:47:16
【问题描述】:
如果我有一个函数:
std::string returnString() {
return "Hello, World!";
}
电话:
std::string hello = returnString();
std::cout << hello << std::endl;
产生Hello, World!。
但是,如果我尝试:
const char* hello = returnString().c_str();
并尝试打印:
for (const char* p = hello; *p; ++p ) {
std::cout << *p;
}
std::cout << std::endl;
它给了我一个错误说Invalid read of size 1,这意味着p是NULL。
是什么导致了这种行为?
感谢您的帮助。
【问题讨论】:
-
这个关于 OpenGL 的问题怎么样?
-
"const char* vertSource = read_file(m_FragPath);"的区别在于它是无效的吗?
-
编辑了标签和问题,但它应该是
const char* vertSource = read_file(m_FragPath).c_str();
标签: c++ scope function-pointers destructor