poznaję obecnie krok po kroczku C++ i doszedłem właśnie do wskaźników; mam pytanko: czy sterta zawiera się tylko w podstawowych 640Kb (tak jak w Pascalu) pamięci czy dotyczy też pamięci rozszerzonej?
Jak to jest? [???]
zwykły user
poznaję obecnie krok po kroczku C++ i doszedłem właśnie do wskaźników; mam pytanko: czy sterta zawiera się tylko w podstawowych 640Kb (tak jak w Pascalu) pamięci czy dotyczy też pamięci rozszerzonej?
Jak to jest? [???]
zwykły user
Jeśli piszesz dla trybu rzeczywistego to masz tylko do dyspozycji te 640kb (troszkę mniej/lub też troszkę więcej - niezależnie od kompilatora). Jeżeli potrzebujesz więcej danych to robisz sobie swapa albo w pliku alno w pamięci rozszerzonej (poprzez np. xms/ems). Jesli piszesz dla trybu chronionego, to znikaja jende ograniczenia (pamięć), a pojawiaja sie inne (chronione obszary pamięci... itp. blebleble ).
hehe ta wypowiedź wybiega nieco poza moje granice rozumowania... [wstyd]
Skąd mam wiedzieć, że programuję w trybie rzeczywistym? Używam Visual C++ i wszystkie projekty to WIN32 Console Aplication;
Co to jest SWAP?
xms/ems użyte w tym kontekście zdania oznacza pliki nagłówkowe?
PZDR
Skoro używasz win32 i vc, to raczej piszesz dla trybu chronionego. A sprawdzić jest prosto... Po prostu spróbuj zaalokować 1mb pamięci. Jesli wyjdzie...
Co to jest swap? - proponuję zajrzeć do słownika języka angielskiego.
Xms/ems to standardy obsługi pamieci powyżej 1 mb.
Wpisz haslo na googlach (www.google.pl) : programowanie+xms albo programowanie+ems i wyskoczą tony materiałów.
VC i kazdy program w nim napisany to definitywnie i niepodwazalnie win32 i tryb chroniony pelna geba. A wiec do dyspozycji naszej mamy do 2GB samego RAMu (ofcoz jesli nie ma takowej fizycznej to system nam ja zemuluje :] pagefiles) a poniewaz nie ma takowego (znanego z trybu rzeczywistego ) podzialu na segmenty - jest tylko jeden o wielkosci 4GB (2nasze + 2 systemu) wiec przydzielic mozemy 2GB z niewielkimi ubytami jak granice pamieci procesu zarezerwowane przez system czy nasz program tam zmapowany do tych 2GB.