返回char *形式的C ++函数

时间:2018-12-05 10:37:14

标签: c++ arrays char

我有一个简单的问题,但不幸的是我无法在线找到answear。

const char* foo() const { return "foo"; }

这100%安全吗?

2 个答案:

答案 0 :(得分:6)

从PoV语言完全可以接受。

因为没有分配,所以没有任何类型的内存泄漏。构造的唯一值是原始类型的结果指针,该指针被初始化为指向文字的位置。此函数返回的指针指向可以读取和使用的有效位置。

实际上,该函数可以标记为constexpr,因为可以在编译时确定结果,并且使用该函数的任何程序都将像直接使用文字一样工作。

答案 1 :(得分:0)

我不确定“ 100%”是什么意思。该表达式是正确的,但请记住,调用者将需要知道返回的指针指向的数组的长度。函数要么使用某些参数返回该值,要么调用者检查其长度,但是在这种情况下,函数必须保证数组以NULL终止。