Jes*_*s H 9 c++ memory-management memory-safety
是否可以创建编码标准或使用可以证明可以消除C++中的任何内存管理错误的库?
我正在考虑类似Java的东西,例如在Java应用程序中悬挂指针是不可能的.
是否可以创建编码标准或使用可以证明可以消除C++中的任何内存管理错误的库?
是的,不是.
即使您使用非常严格的标准,这样做也会限制您使用非常狭窄的C++语言子集.例如,Ten of Power(开发安全关键代码的规则)表示您应该完全禁用堆使用.然而,仅凭这一点并不能阻止您创建内存损坏.
我想如果对这个问题有一个确切的答案,那么几十年前这个行业就会解决这个问题,但我们在这里......
我不相信有一种明确的方法可以确保您的代码完全安全,但有一些最佳实践可以帮助您确保尽可能少的问题.
以下是一些建议:
shared_ptr,unique_ptr但当然,如果你愿意,你仍然可以滥用这些.(例如shared_ptr,如果您有循环引用,则无法帮助您......)valgrind,可以帮助您发现问题并验证您的代码是否没有错误.即使您遵守任何编码标准或最佳实践,也可能并且将会发生错误.没有人保证你会安全.但是,通过遵循这些建议,您可以最大限度地减少错误的可能性和影响.
| 归档时间: |
|
| 查看次数: |
3382 次 |
| 最近记录: |