Dzień dobry,
Chciałbym zapytać :
1. Co to dokładnie jest stos oraz bufor ( prostymi słowami) ?
2. Czy to co już wiem jest poprawne?
W pamięci RAM są miejsca na:
- tekst programu.
- zmienne globalne.
- sterta ( miejsce na zmienne dynamiczne)
- stos ( miejsce na zmienne lokalne)
Na stosie przechowywane są zmienne lokalne w taki sposób, że np. jeżeli w funkcji main napisze:
1 linijka kodu ---- char imie[10] ;
2 linijka kodu ........scanf("%s",imie);
(STOS) to najpierw na stosie tworzy się np. 10 zielonych książek potem na tych książkach na samym wierzchu leży informacja ( wskaznik na adres ) drugiej linijki kodu w funkcji main. ( żeby procesor wiedział gdzie ma wrócić do kodu) i jeżeli chcemy dostać się do książki która jest w środku to sciagamy 4 książki wyciągamy 5 i odkładamy na miejscie pozostałe książki.
BUFOR - I teraz czy bufor też jest umieszczony na stosie tzn. wyobrażam to sobie tak, że jeżeli STOS to jest duży pokój w którym są 2 duże stoliki i na pierwszym stoliku mamy te 10 zielonych książek to na drugim stoliku mamy bufor czyli np. wyobrażam go sobie jako kartonowe pudło i teraz jeżeli w drugiej linijce kodu wpisuje imie na komputerze np. Bartek to te 6 znaków trafia do bufora w formie tablicy i jeżeli klikne enter to wtedy z bufora trafia to do 6 zielonych książek ( w każdej książce jedna litera ) i tak samo jeżeli np. w 3 linijce kodu miałbym napisane printf("%s",imie); to każda litera z tych książek trafia najpierw do kartonu a dopiero później na monitor
Wiem, że jest to napisane bardzo prostym językiem ale zależało mi na napisaniu jak sobie to wyobrażam w głowie.
Bardzo proszę o odpowiedzi.