Article View: de.comp.lang.c++
Article #145Re: Borland C++ 3.1, Fehler in Speicherverwaltung?
From: Lars Duening
Date: Wed, 20 Sep 1995 19:02
Date: Wed, 20 Sep 1995 19:02
29 lines
1625 bytes
1625 bytes
In article <43otte$ndb@rztsun.tu-harburg.de> Jens Ehlers <Ehlers@tu-harburg.d400.de> writes:
>Mit Borland C++ 3.1 bekomme ich jedoch weiterhin den Laufzeitfehler,
>allerdings nur wenn ich das Speichermodell Large benutze.
>Das Programm:
Nebenbemerkung: in Programmierkursen gaebs fuer solche Programme
Punktabzug wegen Unuebersichtlichkeit.
> [...]
> short *werte_b=NULL; /* Basis des Speicherbereichs */
> [...]
>for (n_zeiten=100;n_zeiten<=40000;n_zeiten+=100){
>werte_n = (n_zeiten*n_kanaele )*sizeof(short);
> werte_b = (short *) malloc(werte_n);
Du forderst hier Felder von mehr als 64 KByte an, womit du gute
Chancen hast, das malloc() zu ueberfordern (es gibt dir dann einfach
werte_n % 65536 Bytes).
Selbst wenn das malloc() mitmacht, ist im Large-Speichermodell meiner
Erfahrung nach der Feldindexbereich auf 64 KByte begrenzt.
So oder so schreibst du ausserhalb der allokierten Speicherbereiche
und zerstoerst so die Speicherverwaltung des DOS.
Speichermodell Huge (oder explizites Arbeiten mit far und huge
Pointern) sollte abhelfen.
--
Lars Duening; duening@ibr.cs.tu-bs.de
Technical Details
Message-ID:
<43pofg$jns@ra.ibr.cs.tu-bs.de>Path:
arc1-ca.pugleaf.net!news.dkrz.de!tubsibr!dueningReferences:
<43otte$ndb@rztsun.tu-harburg.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.dkrz.de!tubsibr!duening From: duening@ibr.cs.tu-bs.de (Lars Duening) Newsgroups: de.comp.lang.c++,;,de.comp.lang.c Subject: Re: Borland C++ 3.1, Fehler in Speicherverwaltung? Date: 20 Sep 1995 19:02:08 GMT Organization: TU Braunschweig, Informatik (Bueltenweg), Germany Distribution: world Message-ID: <43pofg$jns@ra.ibr.cs.tu-bs.de> References: <43otte$ndb@rztsun.tu-harburg.de> Reply-To: duening@ibr.cs.tu-bs.de (Lars Duening) NNTP-Posting-Host: kastor.ibr.cs.tu-bs.de