一个小问题???

ming6424 2005-12-05 03:50:24
今天看《Effictive C++》时
里面有个小例子


void nomorememory()
{
printf("unable to satisfy request for memory\n");
}

int nomorememory2(size_t uSize)
{
printf("unable to satisfy request for %d memory\n", uSize);
return 0;
}

int main()
{
// set_new_handler(nomorememory);
_set_new_handler(nomorememory2);
char *pbigdataarray = new char[100000000000];
return 0;
}


为什么用set_new_handler(nomorememory);时会出现
Assertion failed: new_p == 0, file setnewh.cpp, line 52

而且MSDN里也找不到set_new_handler???
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2005-12-05
  • 打赏
  • 举报
回复
不同的编译和库支持的函数可能有些不同吧
handsomerun 2005-12-05
  • 打赏
  • 举报
回复
VC本身只支持new.h中的_set_new_handler,而没有支持new中的set_new_handler,set_new_handler在VC中器其实不起任何作用;set_new_handler和_set_new_handler不能同时工作,所以最多也只能支持一个。
xiaocai0001 2005-12-05
  • 打赏
  • 举报
回复
第一:
是set_new_handler()


第二: 换编译器, VC对标准异常支持得很垃圾, Microsoft在异常处理方面有自己的一套

第三: 即使你写了那么个大数在那儿, 一般内存分配还是会成功的.
handsomerun 2005-12-05
  • 打赏
  • 举报
回复
_set_new_handler
healer_kx 2005-12-05
  • 打赏
  • 举报
回复
这个在于编译器和类库的支持的.
ming6424 2005-12-05
  • 打赏
  • 举报
回复
条款7
handsomerun 2005-12-05
  • 打赏
  • 举报
回复
这是《Effictive C++》中的条款多少??
我去翻翻看

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧