CIN,这样为什么不行,该怎么解决

CIN,这样为什么不行
C/C++ code
int main()
{
    char *p;
    cin>>p;

    cout << p << endl;
}


------解决方案--------------------
因为p没有初始化
------解决方案--------------------
C/C++ code

int main()
{
    char *p;
    p=new char;
    cin>>p;

    cout << p << endl;
    delete p;
    p=NULL;
}

------解决方案--------------------

cin>>p; // 没有任何问题,但是意思是像给一个指针赋值,不是指针的值赋值

cout << p << endl; // 跟着上的语句,这句才错了

------解决方案--------------------
野指针也敢进行赋值?
------解决方案--------------------
int main(void)

char *p;
p = (char *) malloc(100);
cin >> p;
return 0;
}
------解决方案--------------------
C/C++ code
int main(void)
{ 
    char *p;
    p = (char *) malloc(100);
    cin >> p;
    return 0;
}

------解决方案--------------------
在studio2005里面编译没有错误,只是警告使用了没有初始化的p,但是运行就崩了;
这样给p分配空间就行了,使用之后再释放这个空间,和楼上的差不多(malloc和 free, new和delete):
C/C++ code
#include <iostream>
using namespace std;

int main()
{
    char* p = new char;
    cin>>p;
    delete p;

    system("pause");
    return 0;
}

------解决方案--------------------
探讨

因为p没有初始化

------解决方案--------------------
因为你没有给P分配内存:
C/C++ code
int main()
{
    char p[256] = {0};
    cin>>p;

    cout << p << endl;
}