1
通過項目的代碼看,我發現這一點:多指針的指針
font.Draw(x, y + 15 * 1, fontColor, "agPtr: %p <= %p", *(void**)agLocked.m_ptr, (void**)agLocked.m_ptr);
如何比(void**)agLocked.m_ptr
不同*(void**)agLocked.m_ptr
?
而且這樣的:
unsigned long shift = *(unsigned long*)all.m_ptr;
shift = *(unsigned long*)(shift + 0x30);
shift = *(unsigned long*)(shift + 0x28);
shift = *(unsigned long*)(shift + 0x178);
我已經看過指針運算以及所有和它沒有任何意義,我。有人能指出(赫赫)我朝着正確的方向嗎?是第一個訪問三個指針的*(void**)
?爲什麼不使用(void***)
?雖然我對C++很感興趣,但我想更好地理解上述內容,以便我可以爲項目做出貢獻。
'*(void **)'的結果是'(void *)'。它將指針推向一級。 '*(unsigned long *)'的結果是'unsigned long'。 –
'type * something'聲明一個指向'type'的指針,'* something'聲明這個指針。 – Nick
至於'unsigned long'的東西:指針算術在某種程度上取決於'all.m_ptr'的類型。代碼很可能會導致程序在很多平臺上崩潰。 –