|
ru.nethack- RU.NETHACK ------------------------------------------------------------------- From : Alexey Orlov 2:5026/60.11 16 Apr 2000 22:06:08 To : Alexey Morenets Subject : cpыв cтека -------------------------------------------------------------------------------- Мои бортовые системы запеленговали, что в Пятница Апрель 14 2000 07:40, Alexey Morenets писал All: AM> Hа счет исполнения кода в стеке (это очевидно как то связано с AM> локальной таблицей дескрипторов) малинький примерчик AM> но вот как он работает понять не могу AM> typedef void (*Func)(void); AM> int main(){ AM> char a[]="\xC3\0\0\0"; AM> Func f; AM> f=a; AM> f(); AM> return 0; AM> } А это очень просто работает! Дело в том, что переменная a[] есть ни что иное как указатель на область памяти с массивом символов. И именно этот указатель и создается в стеке, а не весь массив, который должен находиться в сегменте инициализированных данных. Hадеюсь понятно объяснил. C уважением, Alexey Orlov. --- УТВЕРЖДАЮ. MSG-редактор капитан 2.5 ранга Голд Дедович фор ДОС UNREG * Origin: Живота или смерти проси у боярыни! (2:5026/60.11) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.nethack/2226938fa3a8f.html, оценка из 5, голосов 10
|