内存分配:
数据区:全局变量,静态数据,常量
代码区:函数
栈区: 局部变量,函数参数,返回数据,返回地址
堆区: 其余(动态分配等)
new的返回值是一个指针,new创建对象时,要调用构造函数。
堆是有限的,如果堆中没有足够的自由空间以满足内存的需要时,此需要会失败,并且new返回一个空指针。
引用的主要用途是用作函数参数和函数的返回值;引用不是变量,本身没有地址值;引用在初始化被绑定到的某一个对象上后,将只能永远绑定到这个对象;没有空引用;引用返回的主要目的是将该函数用在赋值运算符左边;对象引用不分配存储空间。
inline函数只能先定义后使用。
拷贝构造函数:用一个已经存在的对象去初始化另一个对象,通常把引用参数声明为const参数,只有一个参数,该参数是该类的对象的引用,不能被显示调用。
常见的内存错误:
1.内存分配未成功,却使用了它
2.内存分配虽然成功,但是尚未初始化就使用它
3.内存分配成功且已经初始化,但是操作越过了内存的边界
4.忘记了释放内存或者只释放了部分内存,因此造成内存泄漏
5.释放了内存却还在继续使用它
转载于:https://blog.51cto.com/chenpolu/1120883