指针销毁后为何还能继续使用?
<火山程序 类型 = "通常" 版本 = 1 />包 火山.程序
类 启动类 <公开 基础类 = 程序类>
{
方法 启动方法 <公开 类型 = 整数>
{
// 在此处填入自己的代码
变量 局部变量 <类型 = 变整数>
局部变量 = 创建对象指针 (嵌入式测试类)
@ ((@dt<嵌入式测试类>*) @<局部变量>) -> youtest(1999);
销毁对象指针 (局部变量)
@ ((@dt<嵌入式测试类>*) @<局部变量>) -> youtest(2999);
返回 (1)
}
#
}
类 嵌入式测试类
{
变量 成员变量 <类型 = 整数>
# @ <include>
# @ public:
# @ void youtest(int udata){@<成员变量> = udata; @<方法_输出成员变量>();}
# @ </include>
方法 方法_输出成员变量
{
可跳转调试输出 (成员变量)
}
}
请帮忙看下上面的代码,第9行我销毁了指针,为何后面还能正常调用? 要如何解决这个问题?
嵌入式测试类下面的嵌入方法 @ public: 这个加不加都不影响外部使用。:dizzy: 可能是销毁后会收到内存池了,但是该内存有没有被别的地方使用,所以数据是没变的。你可以在销毁后多申请几个对象指针,然后你再测试下 看数据还一样不~ 估计是内存未被再次使用, 你用一个析构函数输出下 看他执行了没就知道了
内存释放,只是告诉内存管理系统,这个内存我不用了,这块内存里面的内容,是不会被抹除的,直到这块内存,被再次申请使用,写入了新的数据,但是释放后再用,风险巨大,要是被其他地方使用了这块内存,就会造成异常。还有那个你不写默认就是public
页:
[1]