VC里如下代码:#include "stdafx.h"
#include "iostream.h"int main(int argc, char* argv[])
{
         char* p = new char[];
         cin>>p;
cout<<p<<endl;
delete p;
return 0;
}这样的代码运行后可以看见正确结果,但最后提示报错。
我把里面的delete p;去掉就正常了,可我觉得这样是不是没有把new 分配的内存释放掉啊,不用
delete可以吗?

解决方案 »

  1.   

    new char[];
    new char[10]; //////
      

  2.   

    好歹给各size阿,然后记得初始化为'\0'阿,就没问题了阿
      

  3.   

    new char[10]到是不出错了,但如果我输入>=10个字符就也会出错。我是想能有个动态的输入大小,这该怎么办?
      

  4.   

    #include "stdafx.h"
    #include "iostream.h"int main(int argc, char* argv[])
    {
             string p;
             cin>>p;
    cout<<p<<endl;
    return 0;
    }
      

  5.   

    那就设个变量记录动态的大小啊 !
    int nSize;
    nSize = 100;
     char* p = new char[nSize ];