char* return_string(){
char buffer[] = "Hi world!";
return buffer;
}
bool test08()
{
char compare[] = "Hi world!";
int result = strcmp(compare,return_string());
if (result == 0) return true;
return false;
}
int main()
{
if(test08) printf("\nTRUE");
else printf("\nFALSE");
}
なぜこのコードの実行を、それがコードブロックV 13.12(セグメンテーションフォールト)ではありません。
char* return_string(){
char buffer[] = "Hi world!";
return buffer;
}
コピーした文字列「こんにちは世界:私はchar *buffer=;
に私のchar buffer[]=
宣言を変更した場合には、この私が(知っやすい)C++での初心者ですので、明確にしてください...
これは未定義です。あなたはローカル変数へのポインタを返しています。 –
関連のない言語のタグをスパムしないでください。 – Olaf