_set_new_mode
设置 malloc
的 new
处理程序模式。
语法
int _set_new_mode( int newhandlermode );
参数
newhandlermode
malloc
的 new
处理程序模式;有效值为 0 或 1。
返回值
返回为 malloc
设置的上一个处理程序模式。 返回值 1 表示,分配内存失败后,malloc
之前已调用 new
处理程序例程;返回值 0 表示未执行此操作。 如果 newhandlermode
参数不等于 0 或 1,则返回 –1。
备注
C++ _set_new_mode
函数将为 malloc
设置 new
处理程序模式。 new
处理程序模式指示 malloc
是否在失败时调用由 _set_new_handler
设置的 new
处理程序例程。 默认情况下,malloc
在失败时不调用 new
处理程序例程来分配内存。 可以替代此默认行为,以便在 malloc
无法分配内存时,malloc
可以调用 new
处理程序例程,方法与 new
运算符出于相同原因无法分配内存时所执行的操作一样。 有关详细信息,请参阅 C++ 语言参考 中的 new
和 delete
运算符。 若要重写默认值,请调用:
_set_new_mode(1);
在程序的早期进行调用,或链接到 Newmode.obj(请参阅链接选项)。
此函数验证其参数。 如果 newhandlermode
不为 0 或 1,此函数将调用无效参数处理程序,如参数验证中所述。 如果允许继续执行,_set_new_mode 返回 -1 并将 errno
设置为 EINVAL
。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
例程 | 必需的标头 |
---|---|
_set_new_mode |
<new.h> |
有关兼容性的详细信息,请参阅 兼容性。