Size: a a a

2020 November 16

Lr

Larymar r.sorokin in .NET Talks
main()
{
    {
     var a1=1;
     var a2=2;
     ....
     var a10000=10000;
    }
//вот тут они улетели со стека
cw("kek");
}
источник

V

Vabka in .NET Talks
Larymar r.sorokin
окуда берется и куда девается память при изменении размера стека
никуда не девается. Зааллоцирована при создании потока. И живёт, пока стек живёт
источник

н

невидимка 🇧🇾... in .NET Talks
Larymar r.sorokin
main()
{
    {
     var a1=1;
     var a2=2;
     ....
     var a10000=10000;
    }
//вот тут они улетели со стека
cw("kek");
}
области видимости внутри функции ничо общего со стеком не имеют
источник

Lr

Larymar r.sorokin in .NET Talks
невидимка 🇧🇾
области видимости внутри функции ничо общего со стеком не имеют
они же улетают со стека при выходе из обл видимости
источник

V

Vabka in .NET Talks
Larymar r.sorokin
они же улетают со стека при выходе из обл видимости
а какого стека?
источник

н

невидимка 🇧🇾... in .NET Talks
Larymar r.sorokin
они же улетают со стека при выходе из обл видимости
со стека никто не улетает
источник

DB

Danil Braindead in .NET Talks
Larymar r.sorokin
я не понимаю куда девается и откуда берется память при изменении размера стека
ведь приложению нужно просить память у оси и отдавать ей
https://docs.microsoft.com/en-us/windows/win32/procthread/thread-stack-size во, в принципе ок написано

То есть стек в принципе зависит от размера страницы памяти твоего процесса, поэтому там есть зарезирвированная память, за границы которой нельзя выходить, ибо это зачекает CLR и выкинет SO
источник

н

невидимка 🇧🇾... in .NET Talks
все что происходит на уровне процессора (конкретно х86, за другие отвечать не буду) - функция вернет стекпоинтер какой был до ее вызова и выйдет
источник

н

невидимка 🇧🇾... in .NET Talks
мусор который остался на стеке остается на стеке
источник

н

невидимка 🇧🇾... in .NET Talks
это просто один большой кусок памяти размером в примерно метр
источник

н

невидимка 🇧🇾... in .NET Talks
и указатель на текущую позицию, который обычно хранят в одном-двух регистрах
источник

н

невидимка 🇧🇾... in .NET Talks
невидимка 🇧🇾
это просто один большой кусок памяти размером в примерно метр
размер фиксирован и изменить его нельзя без костылей
источник

Lr

Larymar r.sorokin in .NET Talks
невидимка 🇧🇾
размер фиксирован и изменить его нельзя без костылей
а если я насру переменных больше чем места в стеке
источник

н

невидимка 🇧🇾... in .NET Talks
тогда ты получишь stack overflow
источник

н

невидимка 🇧🇾... in .NET Talks
но мегабайт переменных насрать еще постараться надо
источник

Lr

Larymar r.sorokin in .NET Talks
аааа
источник

Lr

Larymar r.sorokin in .NET Talks
спасибо
источник

Lr

Larymar r.sorokin in .NET Talks
а я правильно понимаю что новые значения переписывают старые?
источник

н

невидимка 🇧🇾... in .NET Talks
да
источник

Lr

Larymar r.sorokin in .NET Talks
пасеба
источник