www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/02/06/06:50:08

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: damonhastings AT yahoo DOT com (Damon Hastings)
Newsgroups: comp.os.msdos.djgpp
Subject: Help! Can't allocate 512KB static array??
Date: 6 Feb 2002 01:35:55 -0800
Organization: http://groups.google.com/
Lines: 28
Message-ID: <76c7896d.0202060135.4fbf94e9@posting.google.com>
NNTP-Posting-Host: 66.81.77.183
X-Trace: posting.google.com 1012988155 26450 127.0.0.1 (6 Feb 2002 09:35:55 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: 6 Feb 2002 09:35:55 GMT
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Can anyone tell me why the following program fails under djgpp on my
machine?

main() {
  char foo[524273];
  for (int i=0; i<524273; i++) foo[i] = 0;
}

Pretty simple, right?  Well, it sometimes throws a SIGSEGV fault,
sometimes locks up, sometimes provokes Windows to pop up an
application termination dialog, and sometimes spontaneously reboots
the computer.  Similar results under DOS.  It works for an array size
of 524272 or if I use malloc() or new instead of a static array.  I
get the same result if I use int[131069] or if I break it into several
smaller arrays.

So I'm guessing this all means djgpp has a 512K stack limit, right? 
How do I change this limit?  Or do I have no choice but to use the
heap?  (And it would be *nice* if I got a compile-time error instead
of spontaneous reboots, if any powers-that-be are reading this...)

Thanks,

Damon Hastings

P.S.  I'm running the latest djgpp suite (with gcc303), I've got 512MB
physical RAM, and go32-v2 reports 430MB DPMI memory available.  I've
tried it under Win98 and just plain DOS.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019