Давний юркер, и студент 3-го курса софт англ, здесь,
Случайное предположение может состоять в том, чтобы помешать вам попытаться преобразовать «естественный» указатель в shared_ptr, а затем освободить указанный объект, без того, чтобы shared_ptr знал о dealloc.
(Кроме того, проблемы с подсчетом ссылок, бла-бла).