Aplikacja otrzymuje zakres pamięci od systemu operacyjnego. Zasadniczo aplikacja musi żądać pamięci, ale ta funkcjonalność może być ukryta dla programisty z powodu języka.
Języki takie jak C pozwalają na blokowanie żądań dla określonych rozmiarów, podczas gdy inne języki, takie jak C ++, C # i Java, pozwalają na żądania za pomocą słów kluczowych, takich jak new
. Każdy język ma kilka sposobów przydzielania pamięci, więc jest to tylko krótki przegląd. Zwolnienie pamięci z powrotem do systemu operacyjnego może być wykonane jawnie lub przez moduł wyrzucania elementów bezużytecznych.
Dostęp do pamięci w aplikacji zależy od sposobu jej przydzielenia. C i C ++ są najlepiej znane z używania koncepcji wskaźników do wskazywania / śledzenia miejsca, w którym znajduje się pamięć. W przeciwnym razie dostęp do pamięci jest obsługiwany przez utworzoną klasę lub zmienną.
Przez większość czasu nie musisz się martwić o określony dostęp do pamięci w swoim programie. Konstrukcje językowe i system operacyjny skutecznie przesłaniają tę troskę.
Twój przykład timera w grze jest doskonałym przykładem tego, gdzie nie musisz się martwić o przydział pamięci. Będziesz mieć zmienną reprezentującą licznik czasu i po prostu będziesz czytać ze zmiennej.
Moja odpowiedź jest ważna podczas pisania aplikacji, podczas gdy odpowiedź zxcdw dotyczy dostępu do pamięci, która należy do innej aplikacji. Twoje warunki LMGTFY to „debugowanie” i „inżynieria wsteczna”, aby zagłębić się w ten temat.
Kilka dodatkowych lektur:
- Artykuł w Wikipedii na temat pamięci komputera daje dobry przegląd rzeczy.
- Następnie zapoznaj się z artykułem Wikipedii na temat we / wy mapowanym na pamięć, aby lepiej zrozumieć trwające machinacje.
- Na koniec zapoznaj się z artykułem na temat pamięci wirtualnej, aby uzyskać lepszą odpowiedź na temat tego, jak każdy system operacyjny będzie obsługiwał mapowanie pamięci nieco inaczej niż inne.