C++内存问题记录
C++里可能出现的内存问题大致有这么几个方面:
-
缓冲区溢出(buffer overrun).
使用vector
/string来管理缓冲区,自动记住用缓冲区的长度,并通过成员函数,而不是裸指针来修改缓冲区。 -
空悬指针,野指针。
用shared_ptr/weak_ptr
-
重复释放(delete两次)。
用scoped_ptr,只在对象析构的时候释放一次。
-
内存泄漏(memory leak)。
用scoped_ptr,对象析构的时候自动释放。
-
不配对的new delete。
尽量避免自己new,使用vector。
-
内存碎片(memory fragmentation)。