返回信息流main函数如图一,结果如图二,如果把main中的两行注释语句去掉注释,结果如图三。在图二中,想问为啥已经delete t了还能访问到结构体成员;图三中,就完全不知道为啥会出来这样的结果了。求大佬指点[ema13]
这是一条镜像帖。来源:北邮人论坛 / cpp / #98622同步于 2019/1/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
小白又来求助了
gcl
2019/1/20镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
图2是极端危险的内存访问的错误示范,在不修改原有逻辑的前提下,在delete t之后加入其它内存分配的语句就极有可能造成内存访问异常:
delete t语句只是告诉操作系统,t结构的内存已经处于释放状态,但是t所占有的内存并非马上会被复写,所以其数据可能还保持delete之前的状态,一旦你在delete之后printf之前加入一些其它的内存操作,就可能会发生内存复写,再访问t的内存结构就会造成程序crash
【 在 gcl 的大作中提到: 】
: main函数如图一,结果如图二,如果把main中的两行注释语句去掉注释,结果如图三。在图二中,想问为啥已经delete t了还能访问到结构体成员;图三中,就完全不知道为啥会出来这样的结果了。求大佬指点[upload=1][/upload][upload=2][/upload][upload=3][/upload]
感觉暖洋洋的大斧又饥渴难耐了嘛[ema21]
【 在 Nroskill 的大作中提到: 】
: 访问被回收的空间是ub行为 访问可能出现任何结果 比如机器冒烟(此处应at某神