🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #814

Re: Rezerwacja pamieci

#814
From: Marek Kotowski
Date: Fri, 23 Jan 1998 11:03
57 lines
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-mail
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>

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