【发布时间】:2015-04-20 05:46:21
【问题描述】:
我正在开发一个程序,我注意到一些对我来说并没有太大意义的东西。 std::string 有一个名为 c_str() 的函数,它返回 std::string 对象的 C 样式字符串(以 NULL 结尾)表示。对我来说没有意义的是 c_str() 函数如何返回 const char * 而无需将其分配给堆。该函数看似返回堆栈上的 char 数组。
我一直认为,如果函数指向的值是使用malloc() 或calloc() 之类的函数在堆上分配的,则函数只能返回有效指针。
c_str() 如何在不使用堆的情况下返回字符串,我能否在自己的代码中以某种方式模仿同样的行为?
提前谢谢大家。
【问题讨论】:
-
谢谢,我去看看。
标签: c++ pointers std cstring stdstring