vc++中的c++问题
n5 博客专家认证 2003-02-05 05:10:47 我用vc++编译一个小程序如下:
#include <iostream.h>
#include <stdlib.h>
#include <new.h>
void OutOfMemory()
{
cerr<<"Unable to staisfy request for memory.\n" ;
abort() ;
}
int main()
{
set_new_handler(OutOfMemory) ;
char *p=new char[10000000000] ;
delete [] p ;
return 0 ;
}
运行结果是:
Assertion failed: new_p == 0, file setnewh.cpp, line 52
abnormal program termination
而如果我改用 _set_new_handler,
则可以正常显示ceer中的信息。
vc++的_set_new_handler和c++标准的set_new_handler除了在参数上不同之外,在其内部的处理上有什么不一样呢?