【建站服务】成都爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广-域名申请
作者: 风兰 . 阅读量: 3 . 发表时间:2022-09-21 02:14:26
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
成都爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

printf("%d %d ",q->num,q->data);
q=q->next;
}
//释放内存
q=head;
p=q;
while(q->next!=NULL)
{
p=q->next;
delete []q;
q = p;
}
return 0;
}
->: 用指针访问结构体内的变量。
在链表中插入、删除节点也很简单, 先给next赋下一个节点地址,再加数据即可。
小高Carl
小高Carl
gao***qicarl1@163.com
5年前 (2017-11-21)
ぁ佌応妚弐☞
321***525@qq.com
参考地址
72
new 和 malloc 内部的实现方式有什么区别?
new 的功能是在堆区新建一个对象,并返回该对象的指针。
所谓的【新建对象】的意思就是,将调用该类的构造函数,因为如果不构造的话,就不能称之为一个对象。
而 malloc 只是机械的分配一块内存,如果用 mallco 在堆区创建一个对象的话,是不会调用构造函数的。
严格说来用 malloc 不能算是新建了一个对象,只能说是分配了一块与该类对象匹配的内存而已,然后强行把它解释为【这是一个对象】,按这个逻辑来,也不存在构造函数什么事。
同样的,用 delete 去释放一个堆区的对象,会调用该对象的析构函数。
用 free 去释放一个堆区的对象,不会调用该对象的析构函数。
做个简单的实验即可明了:
#include <iostream>
#include <malloc.h>
class TEST
{
private:
int num1;
int num2;
public:
TEST()
{
num1 = 10;
num2 = 20;
}
void Print()
{
std::cout << num1 << " " << num2 << std::endl;
}
};
int main(void)
{
// 用malloc()函数在堆区分配一块内存空间,然后用强制类型转换将该块内存空间
// 解释为是一个TEST类对象,这不会调用TEST的默认构造函数
TEST * pObj1 = (TEST *)malloc(sizeof(TEST));
pObj1->Print();
// 用new在堆区创建一个TEST类的对象,这会调用TEST类的默认构造函数
TEST * pObj2 = new TEST;
pObj2->Print();
return 0;
}
/*
运行结果:
-----------------------------
-842150451 -842150451 |
10 20 |
请按任意键继续. . . |
-----------------------------
我们可以看到pObj1所指的对象中,字段num1与num2都是垃圾值
而pObj2所指的对象中,字段num1与num2显然是经过了构造后的值
*/
ぁ佌応妚弐☞
ぁ佌応妚弐☞
321***525@qq.com
参考地址
4年前 (2018-04-25)
lclz
610***253@qq.com
17
第二个笔记,思路是好的,但是错误的。这种写法最后会是一个 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;
成都爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站


