【建站服务】厦门淘宝装修/厦门京东店铺设计/厦门拼多多网店装修公司/厦门企业网店开通申请-网店装修设计-域名申请
作者: 风兰 . 阅读量: 6 . 发表时间:2022-09-21 02:19:13
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
厦门淘宝装修/厦门京东店铺设计/厦门拼多多网店装修公司/厦门企业网店开通申请-网店装修设计

delete 与 delete[] 区别:
1、针对简单类型 使用 new 分配后的不管是数组还是非数组形式内存空间用两种方式均可 如:
int *a = new int[10]; delete a; delete [] a;
此种情况中的释放效果相同,原因在于:分配简单类型内存时,内存大小已经确定,系统可以记忆并且进行管理,在析构时,系统并不会调用析构函数, 它直接通过指针可以获取实际分配的内存空间,哪怕是一个数组内存空间(在分配过程中 系统会记录分配内存的大小等信息,此信息保存在结构体_CrtMemBlockHeader中, 具体情况可参看VC安装目录下CRTSRCDBGDEL.cpp)
2、针对类Class,两种方式体现出具体差异
当你通过下列方式分配一个类对象数组:
第二个笔记,思路是好的,但是错误的。这种写法最后会是一个 data 为 0 的结点,但遍历和析构时用 data 为 0 判断结束而导致缺少对 data 为 0 结点的操作,改正如下:
#include<iostream>using namespace std;struct node{ //链表的节点 int data;//数据 int num;//节点编号 struct node *next;//指向下一个节点};int main(){ struct node *head/*头节点*/, *p, *q; head = NULL; p = NULL; q = new node; q->next = NULL; q->num = 1; int a = -1; cout << "请输入第1个数字:"; cin >> a; q->data = a; head = q; while (a != 0) { p = q; q = new node; q->next = NULL; p->next = q; q->num = p->num + 1; cout << "请输入第" << q->num << "个数字:"; cin >> a; q->data = a; } //前面都是输入,这以下都是输出 q = head; p = NULL; while (1) { printf("%d %d
", q->num, q->data); if (q->data == 0) break; q = q->next; } //释放内存 q = head; p = q; while (1) { p = q->next; delete[]q; q = p; if (!q) break; } return 0;}class A
{
private:
char *m_cBuffer;
int m_nLen;
public:
A(){ m_cBuffer = new char[m_nLen]; }
~A() { delete [] m_cBuffer; }
};
A *a = new A[10];
// 仅释放了a指针指向的全部内存空间 但是只调用了a[0]对象的析构函数 剩下的从a[1]到a[9]这9个用户自行分配的m_cBuffer对应内存空间将不能释放 从而造成内存泄漏
delete a;
// 调用使用类对象的析构函数释放用户自己分配内存空间并且 释放了a指针指向的全部内存空间
delete [] a;
所以总结下就是,如果ptr代表一个用new申请的内存返回的内存空间地址,即所谓的指针,那么:
delete ptr -- 代表用来释放内存,且只用来释放ptr指向的内存。
delete[] rg -- 用来释放rg指向的内存,!!还逐一调用数组中每个对象的 destructor!!
对于像 int/char/long/int*/struct 等等简单数据类型,由于对象没有 destructor,所以用 delete 和 delete [] 是一样的!但是如果是C++ 对象数组就不同了!
kikiqi
kikiqi
353***229@qq.com
参考地址
5年前 (2017-08-07)
小高Carl
gao***qicarl1@163.com
18
利用动态内存, 我们也可以做出链表, 可以不断增长的数组:
#include <iostream>
#include <cstdio>
厦门淘宝装修/厦门京东店铺设计/厦门拼多多网店装修公司/厦门企业网店开通申请-网店装修设计
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站


