new和delete4

C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。

关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。

对于 (1),上面提供的程序a可以证明了 delete[] 和 delete 是等同的。

程序a:
#include <stdio.h>
#define BUFF_SIZE 10240
int main(int argc, char *argv[])
{
        printf("Hello, world\n";
        char* p = NULL;
        while(1)
        {
                p = new int[BUFF_SIZE];
                printf("0x%08XH\n",p);
                Sleep(5000);
                delete p; //或者delete [] p;
                p = NULL;               
        }
        return 0;
}


但是对于 (2),如若p = new ClassA[BUFF_SIZE],情况就发生了变化,此时必须用delete[] p;来析构释放内存。


posted @ 2011-02-18 14:27  BloodAndBone  Views(139)  Comments(0Edit  收藏  举报