用char *p = new char[256];后,可以用delete []p;的形式删除。
但如果char *p = new char(256);后,用delete []p;会出错哦。
这两个语句究竟有什么不同?

解决方案 »

  1.   

    new char(256)是分配单个char变量,并初始化为256,这一超出了char的取值范围
    new char[256]是分配256个char变量的空间,并且变量没有初始化,初始值不确定。
    delete[]只用于释放第二种形式分配的内存,delete用于释放第一种形式分配的内存
      

  2.   

    ok,搂主等着给easyrock(2路转4路) 结账把
      

  3.   

    new char(256)是分配单个char变量,并初始化为256,这一超出了char的取值范围
    new char[256]是分配256个char变量的空间,并且变量没有初始化,初始值不确定。
    delete[]只用于释放第二种形式分配的内存,delete用于释放第一种形式分配的内存   说得不错