C++的delete问题,初学者不太懂

问题描述

C++的delete问题,初学者不太懂
void purchase(Goods* &f, Goods* &r, int w) //从队尾插入结点
{
    Goods* p = new Goods(w);
    p->next = NULL;
    if (f == NULL)  f = r = p;
    else {
        r->next = p;
        r = r->next;
    }
}

void sale(Goods* &f, Goods* &r)
{
    if (f == NULL) {
        cout << "no any goods!
";
        return;
    }
    Goods* q = f;
    f = f->next;
    delete q;  ** // 上面都没有q=new,为什么这里会冒出来一个delete,难道是因为上一个函数的f吗?**
    q = NULL;
    cout << "saled.
";
}

解决方案

你说的没错。
如果f为空,则让f指向新new出来的结点
如果f不为空,则将新的结点插入到队尾
purchase函数,参数使用的是指针的引用传递,会将new出来的结点p带出函数

解决方案二:

这个不太懂!

解决方案三:

如果f为空,则让f指向新new出来的结点
如果f不为空,则将新的结点插入到队尾
purchase函数,参数使用的是指针的引用传递,会将new出来的结点p带出函数

时间: 2024-12-22 21:44:43

C++的delete问题,初学者不太懂的相关文章

c++-用VC++运行程序出现错误,不太懂是什么原因

问题描述 用VC++运行程序出现错误,不太懂是什么原因 用VC++6.0运行一个程序,其中using System为什么有错误,错误提示如下,error C2873: 'System' : symbol cannot be used in a using-declaration请问是什么原因,我还是初学者不太懂,求指教 解决方案 你的程序是C#的,不是C++的,更不是VC++ 6.0的. 用Visual Studio 2010等开一个C#项目编译 解决方案二: using System?这是C#

visual studio 2010怎么用keil c51编译?(网上的教程不太懂,初学者)

问题描述 visual studio 2010怎么用keil c51编译?(网上的教程不太懂,初学者) 我看了一些网上的教程,但是有的不懂,所以很久都没有成功.望指点!十分感谢! 解决方案 keil c51有一个workbench,外观和VC++一样,直接就可以用.

谢谢-初学者,求大神指教,不太懂题的意思

问题描述 初学者,求大神指教,不太懂题的意思 2, 对于一个int型的数组,要求创建一个同样大小的数组,并把原数组中的所有元素复制到新数组中. 3, 对于一个int数组,把其中的所有元素都向后移动一个位置(数组要足够大). int[] arr = { 1, 3, 5, 7, 9 } --> { 0, 1, 3, 5, 7 } // 前面的用0占位 4, 对于一个int数组,把其中的所有元素都向前移动一个位置(第一个位置的数据不需要保存了). int[] arr = { 1, 3, 5, 7, 9

camera-eeprom的dts文件节点信息。一些信息看不太懂。

问题描述 eeprom的dts文件节点信息.一些信息看不太懂. 里面的每个block为什么会分成pagepageenpollmem四个部分?每个部分分别指的是什么?求指教. 解决方案 对应厂商硬件的关系,实际意义并不是特别重要.只要和硬件的信息储存对应就可以了

本地连接-笔记本关于网络适配器的问题,一直不太懂

问题描述 笔记本关于网络适配器的问题,一直不太懂 我记得这里是有个本地连接的啊,怎么我这里没有了呢,而且其他的这些都是做什么的,都有什么用途和作用呢,求计算机高手帮忙解答 解决方案 以太网:本地连接 WLAN:无线网卡 宽带连接:一种连接协议 VM开头的:这是虚拟的网卡,一般是安装虚拟机产生的. 解决方案二: 本地连接需要一个路由器 解决方案三: 那就是以太网吧,你要设置什么

sql server-一个不太懂.GraphView的人来问一个关于用.GraphView做完表格后坐标名称被挡住了的问题

问题描述 一个不太懂.GraphView的人来问一个关于用.GraphView做完表格后坐标名称被挡住了的问题 现在在做从sybase到sqlserver移行的工作 其中有一个部分是通过给出的数据做一个曲线图出来部分代码如下 Set objGraph = Server.CreateObject(""NplotWrapper.LogGraph"") . . . Response.BinaryWrite objGraph.GraphView(intQueryImgWid

数据库设计-有哪位大神帮我看下这个类图有啥错不?不太懂这个,毕业图需要画,哪位大神帮帮忙

问题描述 有哪位大神帮我看下这个类图有啥错不?不太懂这个,毕业图需要画,哪位大神帮帮忙 解决方案 这个根本不是类图,而是实体关系图(E-R图),建议你问问老师到底要什么图 解决方案二: 数据库表的设计图吗?还是?

avl-一道编程题,不太懂,求教

问题描述 一道编程题,不太懂,求教 AVL树是指左右子树的高度差不超过1,现在有一颗n个节点的 AVL树,问这样的树有多少种,比如n=10,有60种. 解决方案 dp[n][h]表示n个节点高度为h的AVL树的个数. dp[n][h] = dp[m1][h - 1] * dp[m2][h - 1] + 2 * dp[m3][h] * dp[m4][h - 1] 其中 m1 + m2 = n m3 + m4 = n 其中h是logn级别的,所以总的时间复杂度大概是O(n ^ 2 logn). 解决

javascript-一道js的题,(小白刚接触js很多不太懂。)

问题描述 一道js的题,(小白刚接触js很多不太懂.) function a(x){ var b=3; return function(y){ return x+y+(++b); } } var ac = a(10); var b = ac(10); var c = ac(10); 求 b c的值? 求高手详解. 解决方案 结果24 25 x没有值 b是闭包变量,所以第一次的累加会被保留. 解决方案二: JS的一道题 解决方案三: 结果分别是:24.25