共用方式為


_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。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

偵錯常式