在下面的c ++代码中找到错误

时间:2014-11-04 06:02:23

标签: c++

我被要求在以下代码中找到错误 这段代码只打印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;
}

1 个答案:

答案 0 :(得分:0)

你有一个悬垂的指针。 s在超出范围时被销毁,这意味着指向其内部数据的指针不再有效。