百科问答小站 logo
百科问答小站 font logo



LeetCode上 C++ 官方题解为什么有很多没有写delete,不会内存泄漏么?面试时也可以么? 第1页

  

user avatar   pansz 网友的相关建议: 
      

谁分配的谁释放。

题目中的指针不是你分配的,如果你释放了,题目要判错。

即便面试的时候,释放了不是你自己分配的指针也是要扣分的。

因为释放了不是自己分配的指针可能会导致双重释放。



user avatar   sleepy-bag 网友的相关建议: 
      

在你给出的截图中的代码里,ListNode 删除后不 delete 没有任何问题。


首先,这个 ListNode 不是你 new 出来的;你也不知道链表整体的实现;你不知道 ListNode 是不是由这个链表全权管理的;你也不知道你所写的 removeElements 函数是否真的是一个 ListNode 的生命周期的结束。

因此,你不能 delete 这个 ListNode - 如果它在别的地方还要用呢?从链表中删除,并不意味着这个对象不再有存在的必要。最好的方法,是谁 new 的,让谁 delete. 你既然没有被要求管理 ListNode 对象的生命周期,就最好不要主动来做这件事情。(当然,很多时候,你不做,我不做,最后就泄露了 2333)


其次,你甚至不知道这个 ListNode 能不能被 delete - 它有可能根本不是开在堆上面的,也就是说,它根本不是 new 出来的。C++ 允许我们像这样直接在栈上创建对象,而不需要使用 new:

       // 对象开在栈上,不能被 delete ListNode n = ListNode(1); // 对象开在堆上,需要被 delete ListNode *p = new ListNode(1);      

在这个题目里,你并不能确定这一点,因此也就不能去 delete 它。


user avatar   wang-jing-long-16 网友的相关建议: 
      

除了已经被反复强调的答案之外,一个被很多答主有意无意间忽略的事情是,正确的答案不仅仅是「不需要」delete,甚至应该是「不应当」delete,至少在题主给出的例子里是这样。

原因在于,入口函数只是提供了一个指针变量,并没有告诉你这个指针是从何而来,它即可能是被构造在栈上,也可能是通过 malloc 等方式在堆上构造。在这两种情况下,使用 delete 都会引发未定义行为,而未定义行为的危害比内存泄露可大多了。


user avatar   royqh1979 网友的相关建议: 
      
学校说让我休学或者退学 原因是觉得领证结婚的学生不好管理 除非我去办离婚证 才能让我正常上学

题主说“学校说“,没具体写明是谁说,也没具体写明是哪个部门说,有可能就是某个办事的人说的。建议先沟通,至少要把学校里有话语权的人和部门都沟通到。

我举个例子:有个学生大二了想退学生会,学生会负责办理的人说:退会需要写一份不少于8000字的申请书(或者是其他什么刁难的条件),否则不允许退会。这个学生就觉得退会太难办了,每天发愁。

另一个同学也想退会,也遇到了同样的问题。但他没有发愁,反而觉得通过办这件事可以锻炼自己解决问题的能力。咱不惹事情,但事情找到自己头上了,躲就不是办法了。他挺高兴,有这么一个事情需要自己去办。如果连这点小事都办不了,以后走向社会遇到的难办的事情岂不更多嘛。于是他和和气气地离开了学生会办事人员那里,然后去找学生会会长沟通。

学生会会长出于维护自己手下办事人员权威的角度考虑,也让他按要求写8千字。

他和和气气地离开,去找辅导员了。路上他想着:辅导员办不成就找系里、院里……系里院里还办不成就找校方负责部门,比如校团委。再办不成就找负责部门的负责人、再办不成就去找学校纪委、党委,再办不成就找书记、校长……

他就像完成一份论文一样做着前期谋划,结果还没找到系里,辅导员就帮他协调着退会了,只写了几百字的退会申请。

回到题主的问题里来,学校里从下到上这多人和部门都算是“校方”吗?题主说“学校”让她休学,到底是学校里一个小办事员说的,还是从下到上都这么说?是不是底层办事人员懒政搞一刀切?是不是校方中层、高层都根本不知道此事?这些都要弄清楚啊。

题主可以逐层和校方沟通,估计沟通到某一层次就解决了。如果真的一直沟通到顶层的校长和书记也没搞定的话,那么才能真正视为:“学校让你休学”。

不要害怕和学校高层沟通,都让你休学了,没啥害羞和害怕的,对你来说这么大的事件,就算每天在校长办公室门口堵他,也得争取到和校长沟通的机会。也许这在校长眼里就不算个事儿,他给下面打个电话,你的烦恼就全都消失了。记得和各层次人员沟通时都要注意保留证据比如录音等。

沟通时要观察对方是什么样的人,如果是忠厚老实的,你就多多卖惨卖可怜;如果一看就是官僚气十足的话,可以用一点小手段,比如问他:“您真的没办法了吗?唉……咦?旁边办公室是不是领导的屋?我去找领导是不是能帮我?”如果一看对方就是欺软怕硬的,可以问他:“我实在没办法了,您说我可不可以求助媒体和记者?您再给帮我想个办法吧,对了,您说我打市长热线能解决吗?"。简单来说,小手段就是以低姿态让对方无法立刻翻脸的前提下表达出威胁对方的话语。当然,对于大学生来说,社会经验不足,也许无法识别出对方是什么性格的人,那么就按提前做的对话草稿,把想说的话统统说了,姿态要低,毕竟你是学生,对方代表学校。态度要好,不要发火,要把困难看成学习上的一道难题来慢慢解。

一般来说校方不会和你一个学生死磕到底的,此时学校就会让步。为啥会这么说,因为穿鞋的都怕光脚的,你都要被退学了,你怕啥,学校才怕你这种不稳定因素呢。(再送题主一个小手段吧,哭!女性哭起来很有杀伤力的,在校领导办公室哭!声音呜咽凄惨,越大越好,越有别人来找领导签字时越哭,门外越有人等的时候越要痛哭着离开,让大家四目、不,六目、八目相对……然后平静一下,抽冷子再去领导屋继续谈。让女生哭着离开办公室,对校领导的风评是有损的,很容易传闲话,校领导坐不住的。啥?校长是女的?那书记呢?不可能班子成员都是女的。)

如果学校还是不让步(就算校长犯昏,别人也不劝他?学校法务干啥吃的?办公室主任干啥吃的?他们早都给领导点明后果了。),那就真的要在各大网络平台发帖了。帖录音、帖录音整理的文字……帖子一定不要虚构和夸张,说事实说诉求就行了。接下来你自己都不用管,就会有政府负责网络舆情的部门联系学校的,你还担心学校继续不让步吗?

如果学校铁了心跟你死磕(实在想不出学校那么多管理人员为啥脑子集体发昏),那就法院诉讼啦,肯定能赢的。不过我想只要你发挥主动性,积极去解决,是走不到到这最后一步的,早早就在学校内部的时候就搞定了。


user avatar   qinlili233 网友的相关建议: 
      
学校说让我休学或者退学 原因是觉得领证结婚的学生不好管理 除非我去办离婚证 才能让我正常上学

题主说“学校说“,没具体写明是谁说,也没具体写明是哪个部门说,有可能就是某个办事的人说的。建议先沟通,至少要把学校里有话语权的人和部门都沟通到。

我举个例子:有个学生大二了想退学生会,学生会负责办理的人说:退会需要写一份不少于8000字的申请书(或者是其他什么刁难的条件),否则不允许退会。这个学生就觉得退会太难办了,每天发愁。

另一个同学也想退会,也遇到了同样的问题。但他没有发愁,反而觉得通过办这件事可以锻炼自己解决问题的能力。咱不惹事情,但事情找到自己头上了,躲就不是办法了。他挺高兴,有这么一个事情需要自己去办。如果连这点小事都办不了,以后走向社会遇到的难办的事情岂不更多嘛。于是他和和气气地离开了学生会办事人员那里,然后去找学生会会长沟通。

学生会会长出于维护自己手下办事人员权威的角度考虑,也让他按要求写8千字。

他和和气气地离开,去找辅导员了。路上他想着:辅导员办不成就找系里、院里……系里院里还办不成就找校方负责部门,比如校团委。再办不成就找负责部门的负责人、再办不成就去找学校纪委、党委,再办不成就找书记、校长……

他就像完成一份论文一样做着前期谋划,结果还没找到系里,辅导员就帮他协调着退会了,只写了几百字的退会申请。

回到题主的问题里来,学校里从下到上这多人和部门都算是“校方”吗?题主说“学校”让她休学,到底是学校里一个小办事员说的,还是从下到上都这么说?是不是底层办事人员懒政搞一刀切?是不是校方中层、高层都根本不知道此事?这些都要弄清楚啊。

题主可以逐层和校方沟通,估计沟通到某一层次就解决了。如果真的一直沟通到顶层的校长和书记也没搞定的话,那么才能真正视为:“学校让你休学”。

不要害怕和学校高层沟通,都让你休学了,没啥害羞和害怕的,对你来说这么大的事件,就算每天在校长办公室门口堵他,也得争取到和校长沟通的机会。也许这在校长眼里就不算个事儿,他给下面打个电话,你的烦恼就全都消失了。记得和各层次人员沟通时都要注意保留证据比如录音等。

沟通时要观察对方是什么样的人,如果是忠厚老实的,你就多多卖惨卖可怜;如果一看就是官僚气十足的话,可以用一点小手段,比如问他:“您真的没办法了吗?唉……咦?旁边办公室是不是领导的屋?我去找领导是不是能帮我?”如果一看对方就是欺软怕硬的,可以问他:“我实在没办法了,您说我可不可以求助媒体和记者?您再给帮我想个办法吧,对了,您说我打市长热线能解决吗?"。简单来说,小手段就是以低姿态让对方无法立刻翻脸的前提下表达出威胁对方的话语。当然,对于大学生来说,社会经验不足,也许无法识别出对方是什么性格的人,那么就按提前做的对话草稿,把想说的话统统说了,姿态要低,毕竟你是学生,对方代表学校。态度要好,不要发火,要把困难看成学习上的一道难题来慢慢解。

一般来说校方不会和你一个学生死磕到底的,此时学校就会让步。为啥会这么说,因为穿鞋的都怕光脚的,你都要被退学了,你怕啥,学校才怕你这种不稳定因素呢。(再送题主一个小手段吧,哭!女性哭起来很有杀伤力的,在校领导办公室哭!声音呜咽凄惨,越大越好,越有别人来找领导签字时越哭,门外越有人等的时候越要痛哭着离开,让大家四目、不,六目、八目相对……然后平静一下,抽冷子再去领导屋继续谈。让女生哭着离开办公室,对校领导的风评是有损的,很容易传闲话,校领导坐不住的。啥?校长是女的?那书记呢?不可能班子成员都是女的。)

如果学校还是不让步(就算校长犯昏,别人也不劝他?学校法务干啥吃的?办公室主任干啥吃的?他们早都给领导点明后果了。),那就真的要在各大网络平台发帖了。帖录音、帖录音整理的文字……帖子一定不要虚构和夸张,说事实说诉求就行了。接下来你自己都不用管,就会有政府负责网络舆情的部门联系学校的,你还担心学校继续不让步吗?

如果学校铁了心跟你死磕(实在想不出学校那么多管理人员为啥脑子集体发昏),那就法院诉讼啦,肯定能赢的。不过我想只要你发挥主动性,积极去解决,是走不到到这最后一步的,早早就在学校内部的时候就搞定了。




  

相关话题

  为什么世界上大多数地方的人习惯用逗号表示小数点,而C++却用圆点表示小数点,而不是按照大多数地方习惯? 
  C语言 下面哪个定义是合法的? 
  该如何优雅地黑 C++? 
  i=1,为什么 (++i)+(++i)=6? 
  如何理解互斥锁、条件锁、读写锁以及自旋锁? 
  C++ 对 c 兼容是什么意思? 
  为什么c++中要分为heap(堆)和stack(栈)? 
  游戏程序员必须要修 C# 吗?我徘徊在先开始 C++ 还是 C# ? 
  有个人说C++程序入口是mainCRTStartup,另一个人说是main,然后打起来了,如何评理? 
  C++对一个map不断insert delete元素(多任务中的一个任务),是否存在内存碎片问题? 

前一个讨论
AirPods Pro的空间音频和自动设备切换固件,实际体验如何?
下一个讨论
为何大疆、亿航等无人机企业很少招空气动力学等方面的人?





© 2024-06-22 - tinynew.org. All Rights Reserved.
© 2024-06-22 - tinynew.org. 保留所有权利