присвоение пустого указателя другому пустому указателю - PullRequest
1 голос
/ 21 октября 2019

Безопасно ли присваивать пустой указатель другому пустому указателю, чтобы оба указателя указывали на одну и ту же вещь, а затем работали с одним из них.

Например, я пытаюсь сделать что-то вроде этого:(просто пример) 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

Назначение одной пустоты * другой и последующая работа на одной из них аналогична работе на обеих?

1 Ответ

2 голосов
/ 21 октября 2019
CloseHandle(hPrevious); // now both handles are invalid?

Да, они оба закрыты.

hPrevious = INVALID_HANDLE_VALUE; // now both handles are INVALID_HANDLE_VALUE

Это только изменяет hPrevious. hFile не изменяется. У указателей нет жуткого действия на расстоянии, пока они не разыменовываются с *.

...