84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
この endless loop是为了等分配成功内存然后返回指针, 不过我的操作系统知识非常不扎实(非科班), 所以想请教下大家这里的endless loop的第二个if がどのように分析されるのかを知っています (ここでのハンドルの処理など)
endless loop
if
ありがとう
_callnewh は、メモリ割り当ての失敗を処理するハンドルを呼び出します。このハンドルは、メモリの解放を試みたり、一定時間待機したり、例外を直接スローしたりすることができます。ハンドル呼び出しが _callnewh(size) != 0,那么new会再一次尝试申请,如果调用失败_callnewh(size) == 0 を正常に返すと、関連する例外がスローされます。
_callnewh(size) != 0
_callnewh(size) == 0
if (size == SIZE_MAX)说明申请的对象数太多(size_t理论上能表达任何对象的数量)。elseこれは一般的なアプリケーションの失敗です。 std_bad_array_new_length および std_bad_alloc は、標準ライブラリ内の対応する例外を参照します。
if (size == SIZE_MAX)
else
関連インターフェース: _set_new_handler
_callnewh は、メモリ割り当ての失敗を処理するハンドルを呼び出します。このハンドルは、メモリの解放を試みたり、一定時間待機したり、例外を直接スローしたりすることができます。ハンドル呼び出しが
_callnewh(size) != 0
,那么new会再一次尝试申请,如果调用失败_callnewh(size) == 0
を正常に返すと、関連する例外がスローされます。if (size == SIZE_MAX)
说明申请的对象数太多(size_t理论上能表达任何对象的数量)。else
これは一般的なアプリケーションの失敗です。 std_bad_array_new_length および std_bad_alloc は、標準ライブラリ内の対応する例外を参照します。関連インターフェース: _set_new_handler