При преобразовании указателя на ссылку важно убедиться, что вы не пытаетесь преобразовать нулевой указатель. Компилятор должен позволить вам выполнить преобразование (потому что в общем случае он не может определить, является ли это допустимой ссылкой).
void foo(string* s)
{
if(0 != s){
bar(*s);
}
}
Оператор * является обратным к оператору &. Чтобы преобразовать ссылку на указатель вашего использования & (адрес). Чтобы преобразовать указатель на ссылку, используйте * (содержимое).