C ++编译错误c2664 ZeroMemory

时间:2013-05-18 23:05:26

标签: c++

为什么这个ZeroMemory(&socketAddress, sizeof(Connection::socketAddress));有效,但事实并非如此?

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

我收到此错误:error C2664: 'memset' : cannot convert parameter 1 from 'sockaddr_in Connection::* ' to 'void *'

1 个答案:

答案 0 :(得分:2)

&Connection::socketAddress是成员指针。它本身不是一个指针,而是一种在给定指向该类的指针的情况下获取指向类的特定成员的指针的方法。 ZeroMemory不能接受它,因为它实际上并没有指向任何真正的记忆;它需要更多信息(指向包含该成员的类的实例的指针)才能真正获得真正的指针。

有关成员指针的更多信息,请查看this question