Mail Archives: djgpp/1999/06/08/03:02:53
X-Authentication-Warning: | mail.bio.uva.nl: Host biomacI-138.bio.uva.nl [145.18.167.138] claimed to be [145.18.167.138]
|
Message-Id: | <v01540b01b3826f4b700d@[145.18.167.138]>
|
Mime-Version: | 1.0
|
Date: | Tue, 8 Jun 1999 09:02:49 +0200
|
To: | djgpp AT delorie DOT com
|
From: | dlanor AT dds DOT nl (Dlanor Blytkerchan)
|
Subject: | Re: malloc() problem
|
Reply-To: | djgpp AT delorie DOT com
|
>> Here's a weird little problem: when I try to allocate a buffer with
>> malloc(), it returns NULL. The buffer I am trying to allocate is just under
>> 34K, and I have at least 4 MB free (probably much more), and at least 400K
>> in low memory. This happens regardless of where I do it (inside or outside
>> of RHIDE) and regardless of anything I do that the FAQ suggests. Even
>> directly calling that heap extender thingy as described in FAQ chaper 15 (I
>> forgot the name) returns -1 (probably why I'm getting NULL back from
>> malloc()).
>> The line I'm using is this:
>>
>> bufferType *buffer;
>> bool rc = true;
>>
>> rc = ((buffer = (bufferType*)malloc(sizeof(bufferType))) != NULL);
>> if (!rc) {
>> start complaining and quit..
>> } // if
>>
>> Does anyone have a better way of allocating memory than this & is there
>> something I'm missing/overlooking here, or is this particular piece of
>> coding simply jynxed and should I simply retype it?
>
>Should be right (though something like `buffer = malloc(n); if (!buffer)
>die();' is a bit easier to follow).
Possibly, but not the way I generally program: rc is a global variable. If
set to false, no I/O is done any more, the problem is reported as soon as
the program is back at it's core and then dies.
>What does go32-v2 print out? And what OS and DPMI server do you use?
The above memory value (the 4 MB) is taken from go32-v2, the 400 K from
mem, and the 34 K from sizeof().
I think I checked this quite thouroughly - I just can't find the problem so
I decided to post a message and go to sleep - it was 1 am ;-)
Greetz!
Dlanor
- Raw text -