Czy mógłby ktoś dokładnie wyjaśnić różnicę pomiędzy tymi pojęciami stos/sterta? Czytałem poprzednie wypowiedzi użytkowników z wcześniejszych tematów, lecz było dużo "odmiennych" opini na ten temat. Chodzi mi tutaj dokładnie o sytuacje w 2 językach programowania : C++ i Java.

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
nie wierze ze byly odmienne opinie. Pokaz jakies zrodla
takie rzeczy mozesz przeczytac nawet na wikipedii, dziala tak samo, nie zaleznie od jezyka
- Rejestracja:ponad 10 lat
- Ostatnio:ponad 10 lat
- Postów:3
różnice między STACK oraz HEAP
Chociażby 1 zdanie sugeruje że sytuacja może być inna javie a inna, w innym języku
"W kontekście javy wszystkie obiekty tworzone przez new tworzysz na stercie."
Zawszę się dowiaduje czegoś nowego :)

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 4 lata
- Postów:173
Z tego co się orientuję to jedną z podstawowych różnic pomiędzy stosem w javie, a w C++ jest to że w javie nie można utworzyć obiektu na stosie, a w C++ tak. Chociaż co do słowa kluczowego new
to zarówno w C++ jak i javie powoduje stworzenie obiektu na stercie.
W javie obiekt musi zostać utworzony poprzez słowo new
, a w C++ można utworzyć obiekt w ten sposób: Klasa klasa
, w javie w ten sposób powstanie jedynie pusta referencja do obiektu.

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
Jest jeszcze jedna możliwa odpowiedź:
C++
- stos: std::stack
- sterta: std::make_heap
Java:
- stack: java.util.Stack
- heap: http://www.java2s.com/Code/Java/Collections-Data-Structure/Demonstratesheaps.htm
Przy takim zrozumieniu pytania odpowiedź dla C++ i Java ma już sens.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.