Or it was the address of a temporary that has gone out of scope. For example:
1 2 3 4 5 6
constchar * f() {
string s = "asdf";
return s.c_str();
}
//...
constchar * p = f(); // Oh noes! p is dangling because string s went out of scope (doesn't exist anymore).