C++new创建动态数组的问题
使用new和delete时,应遵守规则1.不要使用delete来释放不是new分配的内存;2.不要使用delete释放同一个内存块两次;3.如果使用new[]为数组分配内...
使用new和delete时,应遵守规则
1.不要使用delete来释放不是new分配的内存;
2.不要使用delete释放同一个内存块两次;
3.如果使用new[]为数组分配内存,则应使用delete[]来释放;
4.如果使用new[]为一个实体分配内存,则应使用delete(没有中括号)来释放;
5.对空值指针应用delete是安全的;
问题就是第4条规则不能理解:什么是实体分配内存?谢谢了 展开
1.不要使用delete来释放不是new分配的内存;
2.不要使用delete释放同一个内存块两次;
3.如果使用new[]为数组分配内存,则应使用delete[]来释放;
4.如果使用new[]为一个实体分配内存,则应使用delete(没有中括号)来释放;
5.对空值指针应用delete是安全的;
问题就是第4条规则不能理解:什么是实体分配内存?谢谢了 展开
1个回答
展开全部
这里的一个实体是指的就是单一的类型,比如: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[]释放
这里主要是和一组相区别,不是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[]释放
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询