为什么我的程序运行后会出现

#include
#include
using namespace std;
static int k = 15;
void reverse(string &s)

{

if(k>=0)
    cout<<s[k--];
reverse(s); 

}
int main()
{

string str;
cout<<"请输入字符串: ";
cin >> str;
cout<<"倒序后的字符串为:";
reverse(str);
cout<<endl;
return 0;
}
图片说明

reverse(s); 这里执行了reverse(-1);

static int k = 15; 超出str范围

int main()
{

string str;
cout<<"请输入字符串: ";
cin >> str;
cout<<"倒序后的字符串为:";
k = str.length();
reverse(str);
cout<<endl;
return 0;
}

static int k = 15; 超出str范围

int main()
{

string str;
cout<<"请输入字符串: ";
cin >> str;
cout<<"倒序后的字符串为:";
k = str.length();
reverse(str);
cout<<endl;
return 0;
}