将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 *分配给另一个,然后对其进行操作与对两者进行相同操作?
答案 0 :(得分:2)
CloseHandle(hPrevious); // now both handles are invalid?
是的,他们现在都关闭了。
hPrevious = INVALID_HANDLE_VALUE; // now both handles are INVALID_HANDLE_VALUE
这仅修改hPrevious
。 hFile
不变。指针在被*
取消引用之前,不会有任何诡异的动作。