#include<iostream>
#include<string>
using namespace std;
void main(){
char *p;
char arr[];
string str;
cin>>p>>endl;
cin>>arr>>endl;
cin>>str>>endl;
cout<<p<<endl; 
cout<<arr[]<<endl;
cout<<str<<endl;
}
    C语言下面,定义一个char的数组,然后scanf("%S",)这个我知道,
C++下面我就搞不清除了,这个程序到处都错误! 
    请高手讨论下,哪里错误。
	void main()
{
         char *p;      //这里是一个字符指针,没有初始化,可以改成cha *p=new char[100]
         char arr[];
         string str;
         cin>>p>>endl;//这里不需要加“endl;”因为endl不同于C中的\n,endl除了代表换行,还紧跟着清出缓冲槽,在输出的时候才用到。
         cin>>arr>>endl;
         cin>>str>>endl;
         cout<<p<<endl; 
         cout<<arr[]<<endl;
         cout<<str<<endl;
        
         delete[] p; //释放内存
         p=NULL;     //指针赋值为空
}