Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sterta, stos

Ostatnio zmodyfikowano 2009-11-22 05:46
Autor Wiadomość
markon
Temat założony przez niniejszego użytkownika
Sterta, stos
» 2009-11-20 22:08:29
Może trudno w to uwierzyć, ale często się spotykam z pojęciem sterta lub stos,
wiem tylko, że ma to coś wspólnego z pamięcią i proszę abyście nie odsyłali do googli, bo chciałbym, aby ktoś wyjaśnił mi co to sterta, a co to stos, i o co chodzi, że zmienna jest tworzona na stosie, oraz inne "rzeczy" dotyczące stosu i sterty.
Z góry dzięki za odpowiedź
Pozdrawiam markon
P-11700
malan
» 2009-11-21 01:19:55
P-11701
Elaine
» 2009-11-21 11:49:09
Idę o zakład, że nie o taki stos mu chodziło...
P-11703
DejaVu
» 2009-11-21 13:20:50
Pojęcie o które pytasz dotyczy ogólnej budowy aplikacji, alokowania zasobów przez system operacyjny itd. Przyjmij, że sterta/stos jest to pula pamięci rezerwowana wraz z uruchomieniem aplikacji. Każda zmienna, którą tworzysz w programie w sposób następujący:
int zmienna;
jest de'facto jest umieszczana na stercie. Ty, jako programista nie musisz się przejmować jego zarządzaniem, ponieważ programujesz w języku wysokiego poziomu, a nie np. w Assemblerze. Rozmiar sterty jest ograniczony do kilku MB ale można ten rozmiar zmieniać. Jeśli chcesz zminimalizować korzystanie ze sterty możesz używać pamęci dynamicznej, tj. alokowanej za pomocą operatora new (lub funkcji malloc). Sposób organizacji sterty na dzień dzisiejszy jest do tego stopnia wydajny, że często algorytmy rekurencyjne bywają szybsze od ich odpowiedników 'płaskich'.

Mam nadzieję, że czujesz się usatysfakcjonowany tym ogólnym opisem.
P-11704
markon
Temat założony przez niniejszego użytkownika
» 2009-11-21 14:45:01
Wielki dzięki, o to mi chodziło.
pozdrawiam, markon
P-11706
DejaVu
» 2009-11-22 05:46:16
Postanowiłem dodać małe sprostowanie, tj. fragment rozmowy z gg:
f.a.l(ddt.users):  (So 21-11'09 14:54) 
...
f.a.l(ddt.users):  (So 21-11'09 14:54) 
Rozróżniasz stertę i stos?
f.a.l(ddt.users):  (So 21-11'09 14:54) 
http://archiwum.ddt.pl/?GroupId=12928
f.a.l(ddt.users):  (So 21-11'09 14:54) 
Wszystko ok, ale opisałeś stos.
f.a.l(ddt.users):  (So 21-11'09 14:55) 
Ta "pamięć dynamiczna" (new/malloc/HeapAlloc/wtf) to właśnie sterta.
f.a.l(ddt.users):  (So 21-11'09 14:55) 
A ja się potem dziwię, skąd tyle bzdur na różnych stronach.
f.a.l(ddt.users):  (So 21-11'09 14:58) 
Parę innych rzeczy: "Ty, jako programista nie musisz się przejmować jego zarządzaniem, ponieważ programujesz w języku wysokiego poziomu" => rozumiem, że osoby piszące w asmie/C/C++ to nie programiści, bo te języki ciężko nazwać HLLami? Takie coś wynika z tego zdania.
f.a.l(ddt.users):  (So 21-11'09 14:59) 
"Assemblerze" => "asemblerze", "języku asemblera".
JA:  (05:43) 
popraw mnie jeśli coś napisałem błędnie
JA:  (05:43) 
masz większą wiedzę na temat części teoretycznej, a ja do tego nigdy nie przywiązywałem większej wagi
JA:  (05:44) 
dopiero od niedawna staram się precyzyjnie wyrażać, ale nie zawsze mi to wychodzi...
Tak więc jeśli jeszcze ktoś ma coś do powiedzenia itp. to zachęcam do poprawiania mnie.
P-11719
« 1 »
  Strona 1 z 1