Нет. Со стеком Unwinding все переменные / указатели, которые объявлены в областях неупорядоченной части стека, уничтожаются.
Кроме того, правило учитывает Storage Type
переменных.
Например: переменная static
сохраняет свое значение между вызовами функций, что означает, что она не уничтожается при разматывании стека. Это связано с тем, что статические переменные хранятся не в стеке, а в BSS или сегментах данных.
Local variables
(Auto storage type
), созданный в стеке внутри функции, всегда будет уничтожен, когда функция вернется и произойдет разматывание стека.
Указатели, выделенные с памятью в куче, не будут уничтожены при разматывании стека, поскольку они размещены в куче, а не в стеке.
Следует помнить одно важное правило: НИКОГДА не возвращать указатели или ссылки на локальные переменные внутри функции. Указатель или ссылка будут содержать значения мусора.