一心只想AC 2023-06-09 15:30 采纳率: 74.6%
浏览 34
已结题

c++关于new的小问题

今天写代码时遇见了一个问题,我写出了如下代码

list* p = new list;
............................
.............................
list* p = new list;

后来第二条改为p = new list;就好了。
我想知道第一种为什么不对,第一种会导致什么情况?第二条重新定义p时第一个new出的空间会释放吗?当时我输出的内容好像变成乱码了(用的链表)。

  • 写回答

3条回答 默认 最新

  • RivaJ 2023-06-09 15:49
    关注

    同一个定义域内怎么可能声明p两次呢?你居然还能输出乱码,说明是在不同嵌套的定义域内声明了一个新的p
    所以后续要操作外层定义域的p,变成了操作新定义的p,于是链表断了,出现乱码
    请叫我福尔摩斯
    另外,不显式地释放new出来的对象,是不会自动释放的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 创建了问题 6月9日

悬赏问题

  • ¥15 quartus中lpm_dff
  • ¥15 嵌入式软件电子烟开发
  • ¥15 职场 Excel 查重问题
  • ¥20 multisim方波发生电路产生的波形异常,学校没讲模电就留了实验qwq
  • ¥15 求怎么用idea2021.3.2创建web项目并配置tomcat
  • ¥100 or-tools的相关问题
  • ¥30 怎么烘焙完整模型的法线
  • ¥15 有可能用平板通过拓展坞来烧录程序吗(keil5的那种)
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot