Когда мы запускаем этот кусок кода, он работает нормально и печатает string constant
на экране:
char *someFun(){
char *temp = "string constant";
return temp;
}
int main(){
puts(someFun());
}
Но когда мы запускаем следующий подобный код, он не будет работать и выводит на экран какую-то фигню:
char *someFun1(){
char temp[ ] = "string";
return temp;
}
int main(){
puts(someFun1());
}
В чем причина этого? По сути, обе функции делают схожие вещи (то есть возвращают «строку»), но, тем не менее, они ведут себя по-разному. Почему это так?