求解C++有关问题:整数转换为字符串。编译无错,运行崩溃

求解C++问题:整数转换为字符串。编译无错,运行崩溃
将整数转换成字符串,利用指针形式
代码如下:
#include <iostream>
using namespace std;
void change(int number,char *s);

void main()
{
int number;
char *s;
cout<<"please input integer:"<<endl;
cin>>number;
change(number,s);
cout<<*s<<endl;

}

void change(int number,char *s)
{
if (0 == number)
{
*s = '\0';
return ;
}
change(number/10, s);//为什么此处的函数调用s不用加“*”
while (*s)
s++;
*s=number%10 + '0';
*s = '\0';

}
C++ 运行出错

------解决方案--------------------
#include <iostream>
using namespace std;
void change(int number,char *s);

int main()
{
    int number;
    char s[30];       //记得分配空间并初始化
    memset(s,'\0',30);
    cout<<"please input integer:"<<endl;
    cin>>number;
    change(number,s);
    cout<<s<<endl;
    return 0;
}

void change(int number,char *s)
{
    if (0 == number)
    {
        return ;
    }
    change(number/10, s);//为什么此处的函数调用s不用加“*”
    while (*s)
        s++;
    *s=number%10 + '0';
    //这里你以前写错了
}