Zastanawiam się, czy w dobrym dziale umieściłem ten temat, bo jest z pogranicza hardware i programowania, ale bardziej chodzi tu o odniesienie się do sprzętu podczas programowania, więc wydaje mi się, że tak.
Nie wiem, czy ktoś się nad tym zastanawiał, ale zagadnienie pamięci RAM jest dla mnie czarną magią mimo iż czytałem o tym bardzo dużo. Czy jest ktoś w stanie odpowiedzieć mi na pytanie "jak to wszystko do cholery działa :)?".
Chodzi mi dokładnie o następujące zagadnienia:
- co decyduje o adresie komórki w RAM'ie jaki zostanie przydzielony zmiennej?
- skoro wskaźnik jest adresem pojedynczej komórki w pamięci RAM, to w jaki sposób zostaje zapisana tablica? (wiem, że wskaźnik wskazuje na miejsce zerowe tablicy, ale przecież tablica jest zbiorem zmiennych, które nie są adresowane)?
- czym tak na prawdę jest pamięć RAM, co to jest macierz komórek pamięci, w jaki sposób działa bufor I/O, w jaki sposób impuls elektryczny może przechowywać sygnały bitowe?
- jakiej wielkości jest pojedyncza komórka pamięci i czy jeżeli zmienna przekracza jej rozmiar, to zajmuje dwie lub więcej komórek?
Przyznam, że czytałem o tym bardzo dużo, ale nie udało mi się niczego konkretnego wywnioskować. Programuję już od jakiegoś czasu, a do tej pory tak naprawdę nie wiem co robię i w jaki sposób to działa.
Z góry dzięki za wszelką pomoc.
Świetny tutorial o wskaźnikach:
http://xion.org.pl/files/texts/mgt/html/1_8.html
Świetny artykuł o pamięci RAM:
http://nvision.pl/Wszystko-o-pamieciach-RAM--Articles-169-ndetails.html