Даже если вы можете определить, был ли указатель на одну конкретную кучу или один конкретный стек, для одного приложения может быть несколько куч и несколько стеков.
Исходя из причины запроса, для каждого контейнера чрезвычайно важно иметь строгую политику в отношении того, «владеет» ли он указателями, которые он содержит, или нет. В конце концов, даже если эти указатели указывают на выделенную кучу память, некоторый другой фрагмент кода также может иметь копию того же указателя. Каждый указатель должен иметь одного «владельца» за раз, хотя право собственности может быть передано. Владелец несет ответственность за разрушение.
В редких случаях для контейнера полезно отслеживать как принадлежащие, так и не принадлежащие указатели - либо используя флаги, либо сохраняя их отдельно. Однако в большинстве случаев проще установить четкую политику для любого объекта, который может содержать указатели. Например, большинству умных указателей всегда принадлежат их реальные указатели контейнера.
Конечно, здесь важны умные указатели - если вам нужен указатель отслеживания владения, я уверен, что вы можете найти или написать умный тип указателя, чтобы абстрагироваться от проблем.