ASASDASDASDA, Только не забывайте, что это лишь указатель на память, которой владеет string. Поэтому если у вас str в примере выше выйдет из области жизни и удалится, то str_ptr останется висячим указателем.
В какую-нибудь функцию системную, которой char* нужен (и он там не сохраняется после, допустим, вывода), на вот возвращать из функции и в глобальные переменные пихать - очень опасно.