Одноклассник имел такую функцию:Этот массив символов возвращает неопределенное поведение?
char* Func(int a)
{
if(a == 0)
return "yes";
else
return "no";
}
Я знаю, что вернуть локальный символ * не определен, но, когда я спросил его, он сказал, что так как «да» и «нет» не был объявлен как переменная это не было неопределенное поведение.
Кто такой? И почему?
Это должно быть 'cons t char * ', но кроме того, это приемлемо. Он прав; возвращаемый адрес остается действительным, а код в противном случае корректно сформирован. – WhozCraig
Вы ответили, что я хотел знать в ответе на удаление. (То, что «да» является строковым литералом, имеет статическое время жизни переменной. Спасибо. – Aulaulz