_CrtIsValidPointer
驗證指定的記憶體範圍是否可有效用於讀取和寫入 (僅限偵錯版本)。
int _CrtIsValidPointer( const void *address, unsigned int size, int access );
參數
address
要測試有效性之記憶體的開頭的指標。size
指定之記憶體範圍的大小 (位元組)。access
決定記憶體範圍的讀取/寫入存取範圍。
傳回值
若指定的記憶體範圍可有效供指定的一或多個作業使用,則 _CrtIsValidPointer 會傳回 TRUE。 否則,此函式會傳回 FALSE。
備註
_CrtIsValidPointer 函式會驗證記憶體範圍在 address 的開頭,並延伸 size 個位元組,測試其是否能有效用於指定的一或多個存取範圍作業。 當 access 設為 TRUE 時,會針對讀取和寫入驗證記憶體範圍。 當 access 設為 FALSE 時,僅會針對讀取驗證記憶體範圍。 當 _DEBUG 未定義時,會在前置處理期間移除 _CrtIsValidPointer 的呼叫。
因為此函式會傳回 TRUE 或 FALSE,所以可將該函式傳遞至其中一個 _ASSERT 巨集,以建立簡單的偵錯處理機制。 若記憶體範圍無法有效用於讀取和寫入作業,則下列範例會引發判斷提示:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
如需如何搭配其他偵錯函式和巨集使用 _CrtIsValidPointer 的詳細資訊,請參閱 報告巨集。 如需在偵錯版本的基底堆積中如何配置、初始化及管理記憶體區塊的資訊,請參閱 CRT 偵錯堆積詳細資料。
需求
常式 |
必要的標頭 |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer 是 Microsoft 擴充功能。 如需相容性資訊,請參閱相容性。
程式庫
偵錯版本的 C 執行階段程式庫。
範例
請參閱 _CrtIsValidHeapPointer 主題的範例。
.NET Framework 對等用法
不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例。