_set_new_mode

为malloc设置新处理程序模式。

int _set_new_mode(
   int newhandlermode 
);

参数

  • newhandlermode
    malloc的新处理程序模式;有效值为 0 或 1。

返回值

返回为malloc设置的前处理程序模式。 返回值 1 意味着,分配内存失败,malloc 之前调用新处理程序实例;返回值 0意味着成功。 如果 newhandlermode 参数不等于 0 或 1,则返回 -1。)

备注

C++ _set_new_mode 函数为malloc设置新处理程序模式。 新的处理程序模式指示,在失败时,malloc 是否就像 _set_new_handler 设置的那样调用新的处理程序实例。 默认情况下,malloc 不调用发生故障的新处理程序例程去分配内存。 您可重写此默认行为,这样一来,当 malloc 无法分配内存时, malloc 调用新的处理程序例程,其方式与出于相同原因的 new 运算符的操作相同。 有关更多信息,请参见 newdeleteC++ 语言参考中的运算符。 重写默认值、调用:

_set_new_mode(1)

在程序的早期,或链接到 Newmode.obj (请参阅 链接选项)。

此函数验证其参数。 如果newhandlermode 是 0 或 1 之外的任何数,函数调用参数无效处理程序,如 参数验证所述。 如果允许继续执行, **_**set_new_mode返回-1并设置errno 为EINVAL。

要求

例程

必需的标头

_set_new_mode

<new.h>

有关更多兼容性信息,请参见“简介”中的兼容性

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例

请参见

参考

内存分配

calloc

free

realloc

_query_new_handler

_query_new_mode