в другой части програмы нужно проверить освобождалась ли память
delete pMy;
Как это сделать?
Единственно правильный ответ на вопрос - никак. Если у тебя есть указатель не равный NULL, то никто и никгода не сможет сказать освобождена ли память, на которую он указыват, или нет.
Вывод - надо извращаться. Самое простое средство - обнулять указатель сразу же после первого delete.
delete pMy;
pMy = NULL;
В некоторых случаях удобней всё-таки использовать smart pointers (СП). Тут я уже коротко рассказывал:
https://forum.shelek.ru/index.php/topic,9243.msg134327.html#msg134327Хм, умный указатель както жк проверяет что его не грохнули интересно как?
Дело в том, что гроханье СП не всегда приводит к гроханью оригинального объекта. Это как правило стековые объекты. Просто упаковка для настоящего указателя. И граханье СП приводит к уменьшению внутреннего счётчика числа открытых доступов к оригиналу. Они напрочь перекрывают доступ к delete оригинального объекта. Только СП может его вызвать, или говоря другими словами - он знает, вызывался ли delete для оригинального объекта или нет. Соответственно его можно всегда спросить, а существует ли ещё объект?
Хотя конечно, использование СП накладывает определённые требования. Например, надо всегда работать ТОЛЬКО с СП. Мешанина из простых и умных указателей недопустима.