Спасибо! Память виртуальная. То есть, для данного процесса кажется, что возможно выделить всю память рам. Почему же тогда здесь указано, что есть другой процесс со своим стеком?
все равно не понял.Есть например программа для вывода чисел Фибоначчи 1 1 2 3 5 8 13 21 34 55 Возникает вопрос что теперь осталось в стеке: десять чисел? Или только два последних числа?И что будет если я захочу вывести например 1 миллион чисел?
Привет. По моему, числа Фибоначчи после окончания функции мэин автоматически стирается с стека ( статистическая память). Короче переменные "живут" (точнее резервируется) в стеке внутри { ... } вот эти кавычки, как только фунция окончает свою работу стирается переменные с стека.
uint8_t main (){ uint32_t a,b=1; a=0; uint32_t i = 1000000; while(i--){ print(a=a+b); print(b=a+b); } return 0; } Всё зависит от Вашей реализации. Здесь на 2 млн чисел всего 3 переменных, одна из которых - итерирующая. Все на стеке. Одно НО. Раньше, чем мы дойдём до миллионного числа, значение суммы превысит максимальное для данного типа и произойдет переполнение, после чего расчет чисел Фибоначчи превратится в расчет гороскопа. Но суть Вы поняли.