Хочешь я прокомментирую. Даже если не хочешь, всё равно напишу.
Статью с трудом осилил, много букв, много говнокода. Все примеры -
как делать не надо! А как надо спросите. Если есть С++ - то
деструкторы. Если строго С, то использовать if - else. Ресурсы
выделять, использовать и освобождать в зависимости от значения их
дескрипторов. Например, void f()
{
HANDLE hFile = INVALID_HANDLE_VALUE;
hFile = CreateFile();
...
if (hFile!=INVALID_HANDLE_VALUE) CloseHandle(hFile);
}