Article View: pl.comp.lang.c
Article #814Re: Rezerwacja pamieci
From: Marek Kotowski
Date: Fri, 23 Jan 1998 11:03
Date: Fri, 23 Jan 1998 11:03
57 lines
3061 bytes
3061 bytes
Mirek Prywata wrote: > > Niedawno ktos sie pytal o 2,5MB. Widocznie potrzebowal. Czesto bywa tak, ze ludzie tworza np. wielkie tablice, bo nie umieja stworzyc struktury danych mniejszej. Klasyczny przyklad to tablica dwuwymiarowa zamiast tablicy wskaznikow. > > to temat na zupelnie inna dyskusje). BC3.1 pod Winde tez nie ma problemu > (wyzsze numerki oczywiscie tak samo). Problem tkwi chyba nie w samym > kompilatorze, tylko w systemie operacyjnym. > Niezupelnie. Problem tkwi takze, a nawet przede wszystkim, w kompilatorze (a takze w linkerze). To kompilator tworzy kod wynikowy, a nie system operacyjny. > > Poza tym wydaje mi sie, ze te wszystkie small, large, tiny,medium, etc > to wynalazki DOSowe (niech mnie ktos poprawi jesli sie myle). I to > wlasnie one sa najbardziej nieprzenosne. Nieprawda. Modele pamieci nie sa zwiazane z DOS-em, ale z procesorami INTEL, ktore pozwalaja stosowac adresy bliskie i dalekie, i to zarowno dla danych jak i dla kodu. Modele takie ma Pan takze w Windows. > > Co do tego to sie chyba zgadzamy. Przy czym ja twierdze, ze wpisanie w > funkcji malloc zbyt duzego bloku spowoduje najwyzej zwrocenie NULL (z > dalszymi konsekwencjami dla programu) i nie grozi niczym powazniejszym. > Dopiero wtedy nalezy sie zastanowic co zmienic (moze kompilator), zeby > dzialalo. Czasem po prostu nie warto sie meczyc z malutkimi kawalkami > pamieci. Tu sie nie zgadzam. Moim zdaniem jest zasadnicza roznica miedzy przypadkiem, gdy malloc zwraca NULL, bo w systemie nie ma akurat pamieci, a przypadkiem, gdy NULL jest wynikiem zazadania alokacji obszaru przekraczajacego w ogole wielkosc dopuszczalna w danej implementacji C czy srodowisku. To calkowicie rozne rzeczy (w istocie drugi przypadek mozna traktowac jako blad w programie). Jesli chce Pan alokowac odpowiednio duze obszary pamieci, musi sie Pan upewnic w dokumentacji kompilatora, ze jest to mozliwe i przy jakich warunkach. > > No i jeszcze jedna sprawa. Gdy rozmiar pamieci peceta byl 640kB, to 32kB > stanowily 1/20 calej pamieci w komputerze. Teraz srednia ilosc RAMu to > okolo 16MB-32MB. 1/20 z 32MB to okolo 1,5MB. Mowa byla o jezyku C i jego standardzie. Autorzy standardu nie moga myslec o konkretnych komputerach. Pozdrawiam Marek Kotowski
Technical Details
Message-ID:
<34C878EB.2127@imm.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mailReferences:
<34C4F3AB.C34902CC@willow.iie.pz.zgora.pl> <34C5BEC9.2018@imm.org.pl> <34c73f51.1429095@news.icm.edu.pl> <34C70746.46AB@imm.org.pl> <34C7636B.33829801@fuw.edu.pl> <34C77265.11BB@imm.org.pl> <34C794BE.70458E51@fuw.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail From: Marek Kotowski <mkot@imm.org.pl> Newsgroups: pl.comp.lang.c Subject: Re: Rezerwacja pamieci Date: Fri, 23 Jan 1998 12:03:07 +0100 Organization: Instytut Maszyn Matematycznych Lines: 57 Message-ID: <34C878EB.2127@imm.org.pl> References: <34C4F3AB.C34902CC@willow.iie.pz.zgora.pl> <34C5BEC9.2018@imm.org.pl> <34c73f51.1429095@news.icm.edu.pl> <34C70746.46AB@imm.org.pl> <34C7636B.33829801@fuw.edu.pl> <34C77265.11BB@imm.org.pl> <34C794BE.70458E51@fuw.edu.pl> NNTP-Posting-Host: 148.81.238.53 Mime-Version: 1.0 X-Mailer: Mozilla 3.01Gold (Win95; I) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit