计算机程序在存储数据时必须跟踪的3种基本属性:
信息存储在何处
存储的值为多少
存储的信息是什么类型
####################################################################
指针的真正用武之地在于,在运行阶段分配未命名的内存以存储值
在这种情况下,只能通过指针来访问内存。
C语言中,可以用malloc()来分配内存,C++中有更好的方法——new运算符
####################################################################
乍一看,处理数据对象的指针方法可能不太好用,但它使程序在管理内存方面有更大的控制权。
一定要配对地使用new和delete,否则将发生内存泄漏(memory leak)
delete不会删除指针本身,而是释放指针指向的内存,可以为释放过内存的指针重新指向另一个新分配的内存块
不要尝试释放已经释放的内存块
不能使用delete来释放声明变量所获得的内存
使用new和delete时,应遵守以下规则:
1.不要使用delete来释放不是new分配的内存;
2.不要使用delete释放同一个内存块两次;
3.如果使用new[]为数组分配内存,则应该使用delete[]来释放;
4.如果使用new为一个实体分配内存,则应使用delete(没有方括号)来释放;
信息存储在何处
存储的值为多少
存储的信息是什么类型
####################################################################
指针的真正用武之地在于,在运行阶段分配未命名的内存以存储值
在这种情况下,只能通过指针来访问内存。
C语言中,可以用malloc()来分配内存,C++中有更好的方法——new运算符
####################################################################
乍一看,处理数据对象的指针方法可能不太好用,但它使程序在管理内存方面有更大的控制权。
一定要配对地使用new和delete,否则将发生内存泄漏(memory leak)
delete不会删除指针本身,而是释放指针指向的内存,可以为释放过内存的指针重新指向另一个新分配的内存块
不要尝试释放已经释放的内存块
不能使用delete来释放声明变量所获得的内存
使用new和delete时,应遵守以下规则:
1.不要使用delete来释放不是new分配的内存;
2.不要使用delete释放同一个内存块两次;
3.如果使用new[]为数组分配内存,则应该使用delete[]来释放;
4.如果使用new为一个实体分配内存,则应使用delete(没有方括号)来释放;
5.对空指针应用delete是安全的