需不需要在类myClass的析构函数里添加"delete ptr;"来释放ptr指向的内存
==============================================
这个要看程序到底是什么意图.需要在myClass对象销毁以后就停止对ptr指向内存的读写那可以加delete p;(最好还好在前面加if(!p) )但这不是好的做法.因为p指向的内存不是myClass类分配的.myClass析构函数用到delete p;时不能保证p的有效性.C++的遵循的规则是谁用谁分配,谁分配谁销毁.
delete p;语句的意思是将指针p所指对象的内存交还给系统.这片内存必须是动态内存(堆)上分配的.
但是p本身还是指向这片内存的.对p解引用仍然可以访问这片内存.所以在delete p;以后最好再加上一句
p = NULL;
C# 中没有指针,至少看起来没有
内存的释放不是编程人员考虑的
由 .NET 的垃圾回收机制自己处理
要说 lz 问题的答案,那就是不一定释放
会的 有自动垃圾回收机制的