gpt4 book ai didi

c - 有哪些现代 C 习惯用法/指南可以防止与内存相关的错误?

转载 作者:行者123 更新时间:2023-11-30 18:51:14 25 4
gpt4 key购买 nike

在过去的几年里,我到处都能看到很多推荐的C++最佳实践。 C++ 指南不适用于 C,即使程度较小。特别是对于来自 C++ 或 Java 等相对高级语言的人(比如我自己),用 C 编程似乎非常危险。

我知道 C 是一种太低级的语言,无法做出任何保证,但是在编写 C 代码时有什么我必须小心的地方,以便最大限度地减少内存相关错误的可能性吗?

最佳答案

有许多技术被称为防御性编程,这里无法一一列出。例如,您可以采用始终将指针设置为 NULL ,当您释放分配的内存时:

free(p);
p = NULL;

这可以避免离开 p作为一个悬空指针。一个明显的好处是,如果调用 free再次上p ,它不会执行任何操作,因此您有可能避免双重释放问题。

第二种方法是使用许多工具来帮助您跟踪普遍存在的错误,例如缓冲区溢出,仅提及 Valgrind 和 AddressSanitizer。

关于c - 有哪些现代 C 习惯用法/指南可以防止与内存相关的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37552016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com