2013-05-18 43 views
0

爲什麼這個ZeroMemory(&socketAddress, sizeof(Connection::socketAddress));工作,但這不?C++編譯錯誤c2664 ZeroMemory

ZeroMemory(&Connection::socketAddress, sizeof(Connection::socketAddress)); 

我得到這個錯誤:error C2664: 'memset' : cannot convert parameter 1 from 'sockaddr_in Connection::* ' to 'void *'

回答

2

&Connection::socketAddress是成員指針。它本身並不是一個指針,而是一個指向指向該類的指針的方法。 ZeroMemory不能接受它,因爲它實際上並不指向任何真實的內存;它需要更多的信息(一個指向包含成員的類的實例的指針)才能真正得到一個真正的指針。

有關成員指針的更多信息,請參見this question