gpt4 book ai didi

c++ - 被调用者分配被调用者释放

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:07 26 4
gpt4 key购买 nike

在《Secure Coding in C and C++》一书中,作者提到了三种不同的跨项目管理字符串的方法。

  1. 调用者分配,调用者释放(C99、OpenBSD、C11 Annex K)

  2. 被调用者分配,调用者释放(ISO/IEC TR 24731-2)

  3. 被调用者分配,被调用者释放(C++ std::basic_string)

然后他提到,“第三种内存管理模式,其中被调用者分配和释放存储,是三种解决方案中最安全的,但仅在 C++ 中可用。

为什么第三种模式最安全?

最佳答案

首先声明第三种方法只有C++才有的说法是无稽之谈。
这三种方法在 C 和 C++ 中都是可行的。

关于“安全”部分,这取决于您在做什么。如果您正在编写一个独立的字符串类(例如 std::basic_string),则第三种方法可能是最好的,因为该类完全自行管理自己的内存。

依赖于 main(或任何其他外部部分)中的内存分配/删除的字符串类是在使用字符串时忘记必要分配的邀请。 (=错误概率高)

关于c++ - 被调用者分配被调用者释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711031/

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