delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/08/18/19:16:41

From: "Rafał Maj" <r_maj AT poczta DOT onet DOT pl>
Newsgroups: comp.os.msdos.djgpp
Subject: problems with new
Date: Sat, 19 Aug 2000 01:08:28 +0200
Organization: Academic Computer Center CYFRONET AGH
Lines: 42
Message-ID: <8nkfqr$hhj$2@info.cyf-kr.edu.pl>
NNTP-Posting-Host: d-94-53-21.cyfronet.krakow.pl
X-Trace: info.cyf-kr.edu.pl 966640283 17971 149.156.1.181 (18 Aug 2000 23:11:23 GMT)
X-Complaints-To: news AT cyf-kr DOT edu DOT pl
NNTP-Posting-Date: 18 Aug 2000 23:11:23 GMT
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

I have a problem when I'm using new instead of malloc() :

#1  void* ptr = malloc(100*1024*1024);
   That works fine, when ther isn't enought free memory, malloc() just
returns NULL;

#2 char *ptr = new[100*1024*1024];
     OR, what I realy need :
     MyClass *ptr = new MyClass( var1, var2);
     If ther isn't free memory, that cause program to crash with :

Call frame traceback:
in function __djgpp_traceback_exit+48
in function raise+94
in function abort+27
in function __default_terminate+11
in function __terminate+13
in function throw_helper+535
in function __throw+110
in function __builtin_vec_new+26
c.cc(9) in function main
in function __crt1_startup+174

===============================
How can I check, if next call to new() will cause crash, or will work
correctly ?
Or better, can I force new to return NULL when ther isn't free memory, like
malloc is doing ?
===============================
Or - can I write this expresion :
     MyClass *ptr = new MyClass( var1, var2);
Using only malloc() ?


I cann't check amount of free memory befor calling new (for example by
_go32_remaining_virtual_memory())
because this function doesn't always return correct value.

Rafal



- Raw text -


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