new运算符可以在堆中开辟一个空间,用来存储变量,实际上,全局变量和静态变量都是默认存放在堆中的。因为堆通常存放占用空间大,生命周期长的数据。如果要让你自己定义的普通变量放到堆中,那么你可以使用new运算符,形式如下:
int *pvar=new int;
int *pvar=new int(10);
int *pavr=new int[5];
注意,数据不能在分配空间时初始化
分配了空间当然要释放空间,否则会造成常见的内存泄漏,就是说,那块空间就在那里,谁也用不了,白白的浪费着,等系统没有足够内存的时候,程序就崩溃了。
delete可以解决这个问题,如delete [] pvar;
当然也可以用 delete pvar,然而,对于类对象数字而言,这样是不行的,必须用delete [] pavr这种形式来释放所有分配的内存。