Итак, я задаю этот вопрос в контексте основной функции ввода текста, которую я вижу в книге C ++:
char *getString()
{
char temp[80];
cin >> temp;
char * pn = new char[strlen(temp + 1)];
strcpy(pn, temp);
return pn;
}
Итак, temp объявляет массив из 80 символов, автоматическую переменную, память которойосвобождается один раз getString()
возвращается.Было рекомендовано, что если по какой-либо причине вы вернете temp
, его использование вне функции будет ненадежным, поскольку эта память освобождается после завершения функции.Но так как я также объявляю pn
в том же контексте, почему его память также не отбрасывается?