_CrtDoForAllClientObjects
針對堆積中的所有 _CLIENT_BLOCK
類型呼叫應用程式提供的函式 (僅限偵錯版本)。
語法
void _CrtDoForAllClientObjects(
void ( * pfn )( void *, void * ),
void *context
);
參數
pfn
應用程式提供的函式回呼函式的指標。 此函式的第一個參數指向資料。 第二個參數是傳遞至 _CrtDoForAllClientObjects
呼叫的內容指標。
context
要傳遞至應用程式提供之函式的應用程式提供的內容的指標。
備註
_CrtDoForAllClientObjects
函式會在堆積的連結清單中搜尋具有 _CLIENT_BLOCK
類型的記憶體區塊,並在找到此類型的區塊時,呼叫應用程式提供的函式。 找到的區塊和 context
參數會作為引數傳遞至應用程式提供的函式。 應用程式可以在偵錯期間追蹤特定配置群組,方法是透過明確呼叫偵錯堆積函式以配置記憶體,並為區塊指定分派 _CLIENT_BLOCK
區塊類型。 然後就可以分別追蹤這些區塊,並在遺漏偵測期間和記憶體狀態報告期間個別回報這些區塊。
_CRTDBG_ALLOC_MEM_DF
如果未開啟旗標的 _crtDbgFlag
位欄位, _CrtDoForAllClientObjects
請立即傳回 。 未定義 時 _DEBUG
,會在前置處理期間移除 對 的 _CrtDoForAllClientObjects
呼叫。
如需 _CLIENT_BLOCK
類型及其他偵錯函式可以如何使用該類型的詳細資訊,請參閱 Types of blocks on the debug heap呼叫的內容指標。 如需如何在基底堆積偵錯版本中配置、初始化及管理記憶體區塊的相關資訊,請參閱 CRT 偵錯堆積詳細資料 。
如果 pfn
為 NULL
,則會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行, errno
則會將 、 _doserrno
、 _sys_errlist
和 _sys_nerr
設定為 , EINVAL
且函式會傳回 。
需求
常式 | 必要的標頭 |
---|---|
_CrtDoForAllClientObjects |
<crtdbg.h > 、 < errno.h> |
如需相容性詳細資訊,請參閱相容性。
程式庫: 僅限偵錯版的 C 執行階段程式庫。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應