int* pInt = new int(5);和int* pInt = new int[5];

int *p = new int(5);
这句是从堆上分配一个int型变量所占的字节内存,这个内存单元存放的整数值为5,然后让一个整形的指针变量p指向它的地址。
释放方式:delete p;
int *p = new int[5];
这句相当于从堆上分配一个含有5个元素的整形数组所占的字节内存,然后让一个整形的指针变量p指向它的首址。
释放方式:delete []p;(注意这个[]不能掉了,如果掉了就会只释放P[0]所占的空间,p[1]到p[4]不会被释放,产生内存泄露。)

来源:http://topic.csdn.net/u/20090627/18/c81ba42d-57ee-4ef3-adc3-4b6a224b7c1c.html?seed=2039367062&r=78488546#r_78488546

原文地址:https://www.cnblogs.com/wuzhenbo/p/2489341.html