将 void 指针分配给另一个 void 指针
assigning void pointer to another void pointer
将 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* 分配给另一个,然后对其中一个进行操作是否与对两者进行操作相同?
CloseHandle(hPrevious); // now both handles are invalid?
是的,它们现在都关门了。
hPrevious = INVALID_HANDLE_VALUE; // now both handles are INVALID_HANDLE_VALUE
这只会修改 hPrevious
。 hFile
没有改变。在使用 *
.
解除引用之前,指针没有任何幽灵般的远距离动作
将 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* 分配给另一个,然后对其中一个进行操作是否与对两者进行操作相同?
CloseHandle(hPrevious); // now both handles are invalid?
是的,它们现在都关门了。
hPrevious = INVALID_HANDLE_VALUE; // now both handles are INVALID_HANDLE_VALUE
这只会修改 hPrevious
。 hFile
没有改变。在使用 *
.