我被要求在以下代码中找到错误 这段代码只打印abcdef,它对我来说似乎无害,但会欣赏任何建议
#include <iostream>
using namespace std;
const char* append(const char* s1, const char* s2) {
string s(s1);
s += s2;
return s.c_str();
}
void foo() {
const char* total = append("abc", "def");
cout<<"total = "<<total<<endl;
}
int main() {
foo();
return 0;
}
答案 0 :(得分:0)
你有一个悬垂的指针。 s
在超出范围时被销毁,这意味着指向其内部数据的指针不再有效。