В стандартном C ++ нет способа узнать только из одного необработанного указателя, как были выделены связанные ресурсы (если они есть).
Возможно, вы могли бы вместо этого использовать умные указатели, поскольку они передают информацию о владении ресурсами вместе со значением необработанного указателя. Например:
template <typename T>
struct noop_deleter {
void operator()(T *p) {}
};
boost::shared_array<const char> cc("Something string like", noop_deleter<char>());
boost::shared_array<char> ccn(new char[2]);
ccn[0] = 'a';
ccn[1] = 0;
cout << cc.get();