C++new创建动态数组的问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:18:41
使用new和delete时,应遵守规则
1.不要使用delete来释放不是new分配的内存;
2.不要使用delete释放同一个内存块两次;
3.如果使用new[]为数组分配内存,则应使用delete[]来释放;
4.如果使用new[]为一个实体分配内存,则应使用delete(没有中括号)来释放;
5.对空值指针应用delete是安全的;

问题就是第4条规则不能理解:什么是实体分配内存?谢谢了

这里的一个实体是指的就是单一的类型,比如:int char struct class
这里主要是和一组相区别,不是new出上边那些类型的数组。
其实很简单:
int *pi = new int;
delete pi;
char *pchar = new char;
delete pchar;
int *piArray = new int[10];
delete[] piArray;
char* pCharArray = new char[10];
delete[] pCharArray;

只有new的的对象是数组的时候才会用delete[]释放