将void指针分配给另一个void指针是安全的,这样两个指针都将指向同一事物,然后对其中一个进行操作。
例如,我正在尝试执行以下操作:(仅是示例)HANDLE
的类型定义为void*
HANDLE hPrevious = INVALID_HANDLE_VALUE;
HANDLE hFile = CreateFile(...);
hPrevious = hFile; // assigning
CloseHandle(hPrevious); // now both handles are invalid?
hPrevious = INVALID_HANDLE_VALUE; // now both handles are INVALID_HANDLE_VALUE
// hFile is released
是否将一个void *分配给另一个void *,然后对其中一个进行操作,与对两者进行相同操作?
CloseHandle(hPrevious); // now both handles are invalid?
是的,他们现在都关闭了。
hPrevious = INVALID_HANDLE_VALUE; // now both handles are INVALID_HANDLE_VALUE
这仅修改hPrevious
。 hFile
不变。指针在使用*
取消引用之前,不会有任何诡异的动作。