首先,我们c++的内存分为栈(由高到低),堆(由低到高),常量区,全局/静态变量区,自由存储区
内存的问题通常有:
1.分配的成功与否
2.初始化与否
3.使用时越界与否
4.使用后释放与否
5.是否返回一个栈指针(注意区分char a[]="fdas",和char* a="fdas"的区别,前者是栈内存,后者是常量区),由于栈会在程序结束时销毁,所以返回的指针指向的是一个不定的东西,不可使用。
6.free和delete后是否将指针置为NULL(野指针)。野指针的内存是不可以使用的,就是释放了内存但是没有置NULL。
经验:
指针声明后应该立刻赋值或者NULL。