Thread overview |
---|
July 04, 2005 operator new() still returns NULL?! | ||||
---|---|---|---|---|
| ||||
Is this correct? I've just been surprised to see that the following code produces "NULL returned", and not "bad_alloc" { try { char *pch = new char[2000000000]; if(NULL == pch) { fprintf(stderr, "NULL returned\n"); } } catch(std::bad_alloc &) { fprintf(stderr, "bad_alloc\n"); } catch(std::exception &x) { fprintf(stderr, "exception: %s\n", x.what()); } catch(...) { fprintf(stderr, "exception of unknown type\n"); } } What gives?! Matthew |
July 04, 2005 Re: operator new() still returns NULL?! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | "Matthew" <admin@stlsoft.dot.dot.dot.dot.org> wrote in message news:daad5l$2t23$1@digitaldaemon.com... > Is this correct? I've just been surprised to see that the following code produces "NULL returned", and not "bad_alloc" It still returns NULL, that's correct. It's that way to support older code, such as MFC. I know it'll eventually have to be fixed. |
July 04, 2005 Re: operator new() still returns NULL?! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | I've found a workaround, in that I've emulated the somewhat scary tactic of DMC++'s STLport that throws bad_alloc from std::allocator even though operator new() does not. Still, it will have to be fixed. ;) "Walter" <newshound@digitalmars.com> wrote in message news:daaqqi$dpa$2@digitaldaemon.com... > > "Matthew" <admin@stlsoft.dot.dot.dot.dot.org> wrote in message news:daad5l$2t23$1@digitaldaemon.com... >> Is this correct? I've just been surprised to see that the >> following >> code produces "NULL returned", and not "bad_alloc" > > It still returns NULL, that's correct. It's that way to support > older code, > such as MFC. I know it'll eventually have to be fixed. > > |
Copyright © 1999-2021 by the D Language Foundation