【发布时间】:2021-11-23 16:15:00
【问题描述】:
我有一个函数,它接受一个 const char* 并向它添加一个数字:
const char* CheckName(const char* name, int number) {
std::string s = std::to_string(number);
std::string s1(name);
const char* c = (s1+s).c_str();
return c;
}
但是这个函数只返回垃圾,因为指针 c 是悬空的。有什么办法可以重写那个函数吗? 提前致谢。
【问题讨论】:
-
您必须将数据复制到超出功能范围的存储中,例如分配给
new。最好像答案建议的那样返回std::string。