当前位置:  开发笔记 > 编程语言 > 正文

编写内存安全的C++应用程序需要什么?

如何解决《编写内存安全的C++应用程序需要什么?》经验,为你挑选了1个好方法。

是否可以创建编码标准或使用可以证明可以消除C++中的任何内存管理错误的库?

我正在考虑类似Java的东西,例如在Java应用程序中悬挂指针是不可能的.



1> Venemo..:

是否可以创建编码标准或使用可以证明可以消除C++中的任何内存管理错误的库?

是的,不是.

即使您使用非常严格的标准,这样做也会限制您使用非常狭窄的C++语言子集.例如,Ten of Power(开发安全关键代码的规则)表示您应该完全禁用堆使用.然而,仅凭这一点并不能阻止您创建内存损坏.

我想如果对这个问题有一个确切的答案,那么几十年前这个行业就会解决这个问题,但我们在这里......

我不相信有一种明确的方法可以确保您的代码完全安全,但有一些最佳实践可以帮助您确保尽可能少的问题.

以下是一些建议:

如前所述,完全不允许堆使用可能会帮助您摆脱所有内存管理问题,但它并不能完全解决问题,因为它不能帮助您避免例如.迷路指针写道.

我建议你阅读关于三,五和零的规则,它解释了你需要照顾的一些东西.

而不是自己管理内存,使用智能指针等shared_ptr,unique_ptr但当然,如果你愿意,你仍然可以滥用这些.(例如shared_ptr,如果您有循环引用,则无法帮助您......)

使用内存检查工具valgrind,可以帮助您发现问题并验证您的代码是否没有错误.

即使您遵守任何编码标准或最佳实践,也可能并且将会发生错误.没有人保证你会安全.但是,通过遵循这些建议,您可以最大限度地减少错误的可能性和影响.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有