A为一个对象,按照下述的方式来释放有什么问题吗
        A* b = new A[10];
  for(int i = 0; i < 10; i++)
  {
  delete &b[i];
  }

解决方案 »

  1.   

    b 是作为一个整体内存块管理的, 不能单独释放其中的某个单元X * b = new X[n]
    for(……)
    {
      ……
    }
    delete [] b;
      

  2.   

    没有问题,但多此一举A* b = new A[10];
    。。
    delete [] b;这样就可以
      

  3.   

    试试就知道了
    int* b = new int[10];
    // for(int i = 0; i < 10; i++) delete &b[i];
    delete []b;
      

  4.   

    在debug下运行我那段程序不能正常退出 不知道啥原因
      

  5.   

    int* b = new int[10]; // b 是 一个指向  10个 int 的数组
      

  6.   

    int* b = new int[10];
    // for(int i = 0; i < 10; i++) delete &b[i];
    // choose one of  these!    
    delete b;
    // delete []b;
      

  7.   

    为什么还要自己使用数组??
    vector不是很好用吗?
      

  8.   


    想起来了,这样做是不行的,因为内存是整块分配的,你delete &b[0]的时候,整块内存就删除了,你循环后面的delete &b[i]注定会崩溃,
    更进一步说 delete &b[0]应该是会成功的,但是,你delete &b[i]肯定失败
      

  9.   

    无new,无delete;
    无new[],无delete[]
      

  10.   

    http://blog.csdn.net/cbnotes/article/details/38900799
    "delete 和 delete []的真正区别"