避免内存泄漏
-
如果程序会运行很长时间(例如在服务器上,注意不是所有的操作系统都像windows一样每天都要重启),并且在不停地申请新的内存块,忘记释放那些已经不再有用的老内存迟早会把内存消耗殆尽,直接导致后边的new操作无法执行甚至崩溃。
-
动态内存是没有作用域的,所以必须由程序员来跟踪它们的使用情况,并在不需要用到它们的时候及时把它们归还给系统。虽然动态分配的内存块没有作用域,但用来保存其地址的指针变量是受作用域影响的。
常见漏洞
void fun()
{
My Class *x;
x=new Myclass();
}
- 当fun函数结束时,指针变量x将超出它的作用域,这意味着它将不复存在,他所称的值自然就会丢失。