我有以下构造函数:
MutexWrapper::MutexWrapper(Mutex * pMutex)
{
DebugPrint("0x%x", pMutex); // displays 0x1f83e54
}
它在以下函数中被调用:
void OnReviewBuffer_Callback( void * pUserData )
{
ReviewBuffer * thePointer = (ReviewBuffer *) pUserData;
DebugPrint("0x%x", thePointer); // this displays 0x1f83e48
MutexWrapper theMutexWrapper(thePointer);
}
不幸的是,我无法提供 - 的完整定义,ReviewBuffer
但我希望以下内容就足够了:
class ReviewBuffer : public StreamConsumer_Base, public Mutex
{
...
};
问题是,当我打印出来时,thePointer
我得到了0x1f83e48
,但是从构造函数内部打印的值是0x1f83e54
.
为什么指针值不同 - 这与传递指针副本的值传递有关吗?