www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/03/14/08:30:51

From: "John M. Aldrich" <fighteer AT cs DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Problem with memory
Date: Fri, 13 Mar 1998 20:46:16 -0500
Organization: Two pounds of chaos and a pinch of salt.
Lines: 44
Message-ID: <3509E168.4447@cs.com>
References: <6ea7kn$gvv$1 AT kali DOT ziplink DOT net>
NNTP-Posting-Host: ppp210.cs.com
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Jeff Williams wrote:
> 
> Hello,
>    First off, I have never programmed in protected mode before, so this
> question may seem painfully obvious, but I just can't get it.  The
> problem is, in a game I am making, I need to initialize and use a somewhat
> large int array (and it just wont work).  The array is supposed to be
> 1024x960, but if I initialize an array (after all of the image/sample
> loading into memory) larger than 320x200, the program crashes right away.
> I don't even have to attempt to manipulate it for it to crash, so I assume
> it is a memory problem.  I tried doing a malloc loop before and after
> loading everything, and for some odd reason, my avail. memory never
> decreased or increased (I ran it before loading images, etc, after loading
> them, and after initializing the 320x200 array... and it always stayed at
> 8mb).  I am running Win95, and have 24mb of RAM.

Please post the code you use to define and initialize the array;
otherwise there's no way we can give you a specific answer.  I do have
one question - is this array defined automatically, statically, or
dynamically?  If it is defined automatically, then your problem is that
you are running out of stack space.  DJGPP programs by default have a
256K stack that cannot be changed at runtime.  If you use large
automatic arrays or heavy recursion, you may run afoul of this limit and
your programs will crash in strange and hard to debug ways.

The solutions:

  - use malloc() to create the array instead of declaring it in array
notation.
  - Increase the stack size of your program (see chapter 15.9 of the
DJGPP Frequently Asked Questions list).

If this is not your problem, then we must see your code to know what's
wrong.

-- 
John M. Aldrich, aka Fighteer I <fighteer AT cs DOT com>  UIN# 7406319

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d- s+:- a-->? C++>$ U@>++$ p>+ L>++ E>++ W++ N++ o+>++ K? w(---)
O- M-- V? PS+ PE Y+ PGP- t+(-) 5- X- R+(++) tv+() b+++ DI++ D++ G>++
e(*)>++++ h!() !r !y+()
------END GEEK CODE BLOCK------

- Raw text -


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