-1
私は次のコードを有する:第あろうが、二つの異なるbehaveiors intまたはstring.c_strを返す()関数からCPP
const char* justReturn()
{
std::string s = "rstring";
return s.c_str();
}
int justReturnI()
{
int x = 5;
return x;
}
int main()
{
const char* result = justReturn();
int result2 = justReturnI();
std::cout << result <<std::endl;
std::cout << result2;
std::cin.get();
return(0);
}
第1機能eillの出力は奇妙な文字列であることを私に '5'を与える。
なぜ変わった文字が印刷されるのですか?私はスコープの終わりの直後に死んだ文字列を返しませんでした。私は新しいconst charを返しました。
しかし、ポインタはデッドストリングを指しています。 –
[未定義の動作?](http://coliru.stacked-crooked.com/a/c6e6c3496e689c92) –
http://en.cppreference.com/w/cpp/string/basic_string/c_str - *戻り値:へのポインタ基礎となる文字ストレージ。* – chris