類空指標訪問成員函式錯誤

2021-10-21 02:25:48 字數 290 閱讀 9890

今天好不容易調好環境準備執行一下別人的**,執行到一半出現了類空指標錯誤:

引發了異常: 讀取訪問許可權衝突。

this->tree 是 nullptr。

檢視了變數,程式初始化了乙個類指標tree,其為null。

查閱相關資料了解到,此處的問題在於,空的類指標呼叫成員函式,如果該成員函式涉及訪問this指標,則會出錯(在此處表現為,使用了成員變數,因此實質上會訪問this指標來獲得成員變數)。

值得注意的是,如果成員函式不涉及this指標的訪問,則不會出錯。

this指標訪問成員函式問題

class cnullpointcall int cnullpointcall m istatic 0 void cnullpointcall test1 void cnullpointcall test2 void cnullpointcall test3 intitest void cnullp...

一 函式錯誤機制

對於呼叫某些windows函式,不論成功與否,都會有乙個與之對應的 值來標識函式的呼叫情況,是成功或是失敗,如果失敗,則可根據該值進一步獲取失敗的原因。值的獲取通過呼叫函式getlasterror,該函式是執行緒安全的,因為獲取的是主調執行緒中的錯誤 值,其原理是使用執行緒本地儲存區來存放了錯誤 值...

C 空指標訪問成員函式

空指標訪問成員函式 class person void showage int m age void test01 可以呼叫show,不能呼叫showage。呼叫show時,編譯器隱式加上了void show person this 雖然此時this p 為空,但是下面的函式裡沒有用到this,所以...