JnB*_*ymn 4 c++ memory pointers memory-management
可能我所要求的只是一个链接到我尚未找到的网站.但是来自Java背景,在C++中处理内存分配和删除的一般原则是什么?我觉得我可能会在我的应用程序中添加各种内存泄漏.我意识到有几种智能指针的变种,你也可以提到它我,但我想专注于标准的C++指针.
jco*_*der 17
我通常的政策就是这样
我发现这些规则通常可以确保您可以安全有效地使用原始指针,如果您想要破坏这些规则,那么请使用智能指针.
通常,我们使用new分配内存并delete释放它.(主要是因为new调用适当的构造函数和delete适当的析构函数).
但是这里的大多数人会建议你不要使用原始指针而不是用于教育目的(除非智能指针的开销很大,比如嵌入式编程).
了解工作是很重要的,但在大多数情况下,您可以利用设计良好的智能指针类来使您更轻松(并且通常更安全).
智能指针的存在有一个原因:帮助程序员完成优秀的程序,而不必过多关注处理分配/释放.
使用极端偏执的指针.对于在类中声明的每个成员变量,记录它是否拥有它指向的内存的内存生存期.如果是,那么它负责分配和释放内存.如果它确实拥有它指向的内存,请将其清楚地记录下来!还记得,在构造函数中分配并在析构函数中释放.这是一个很好的规则,你忽略了你的危险.除了你使用它们之外,你的指针也是空的.初始化时将它们清空,然后释放它们.在解除引用它们之前,将大量断言放在检查指针完整性的地方.放入真正的警卫来处理他们不好的情况.
最后也是最重要的:
消防贵公司任何滥用这些政策的bozo!它们确实会给您的产品注入无数的伤害,并在路上造成大量的虫子和头痛.
编辑: 链接收藏的c ++网站