比如:
CArray <CPerson*,CPerson*> m_Person;
CPerson* m_Person1=new CPerson();
m_Person1->m_Name="aaaa";
m_Person1->m_Phone="123456";
m_Person.add(m_Person1);
以上通过new开辟的内存空间,退出程序时必须释放,delete.char* m_str;
m_str也需要释放吗。函数中定义的局部变量,等等。
谁能让我弄明白,什么时候定义的变量,必须自己释放,什么样的变量,系统自己释放。
CArray <CPerson*,CPerson*> m_Person;
CPerson* m_Person1=new CPerson();
m_Person1->m_Name="aaaa";
m_Person1->m_Phone="123456";
m_Person.add(m_Person1);
以上通过new开辟的内存空间,退出程序时必须释放,delete.char* m_str;
m_str也需要释放吗。函数中定义的局部变量,等等。
谁能让我弄明白,什么时候定义的变量,必须自己释放,什么样的变量,系统自己释放。
解决方案 »
- 用右键拖动列表框1、2中显示的词语(一个列表框中条目的上下拖动、两个列表框之间条目的拖动),可以改变其显示次序。
- 高分请教!office插件问题
- 我的VC6.0 为什么显示.cpp文件时编辑器突然失效,比如 “void”,都不变颜色了,重新安装后还是不行,是中毒了吗?
- 求CRC-8,G(X)=x8 + x5 + x4 + 1源码
- 在线程中创建新线程的问题。
- 连接数据库的时候出错,为什么?
- API,WIN32,视图,控件!
- 有没有将Wav直接转成Mp3的类,谢谢~~~
- “关于activeX在Web中应用的问题”我是新手,请各位大虾帮忙。
- 怪哉!DBGrid控件打开数表运行后正常,但只要一点其中一条记录就会重新排序!并且第一条记录看不见,但是仍然有那条记录!
- 线程间传递HDC遇到的问题!
- 设置网络打印机的状态
你调用别人的方法得到一个指针变量,那你用完以后,也得负责释放,如果你编库给别人用,传出一个指针变量,你就只管new ,不用delete.
比如:
void aa()
{
char* g_str;}
以上定义的变量g_str需要自己释放吗,delete g_str
不用delete
new对应delete
malloc对应free
如果用new分配堆内存就有责任收回它,否则将会造成内存泄漏。
函数中定义的局部变量不需要释放。
在C++中只有new需要delete释放。