能够输出,但在delete 是出错
#include <iostream>
using namespace std;int main()
{
char * filename = new char [10];
filename = "aaaa";
cout << filename << endl; delete [] filename;
return 0;}

解决方案 »

  1.   

    #include <iostream>
    using namespace std;int main()
    {
    char * filename = new char [10];
    strcpy(filename, "aaaa");
    cout << filename << endl; delete [] filename;
    return 0;}
      

  2.   

    把filename = "aaaa";改成
    strcpy(filename,"aaaa");
    就可以了
      

  3.   

    "aaaa"的空间是写定的,不能delete
      

  4.   

    "aaaa"相当于一个const指针实际上你就算删除成功,那个new char[10];也没有删除因为你相当于把filename 指向了"aaaa"
      

  5.   

    char * filename = new char [10];//申请10字节空间,空间首地址赋给filename.
    filename = "aaaa";              //字符串常量,首地址赋给filename 简单地说,你本来申请了一段可以delete的空间,但是后来这个指针被你指到其他地方去了,新指向的空间不是你动态分配的不能delete,而你new 出来的10字节空间再也无法delete了,造成内存泄漏