什么时候以及为什么我们必须使用 malloc?

When and why we must use the malloc?

我只想知道什么时候以及为什么我们必须使用 malloc 并分配足够的内存。

我应该使用目标指针还是什么?

在 C++ 中,不鼓励使用 malloc/free。您应该改用 new/delete,它分配一块内存 AND 对其进行初始化(默认构造)。从 C++11 开始,甚至 new/delete 都应该避免,你应该使用像 std::unique_ptr 这样的智能指针。然而,malloc 可能仍然对原始缓冲区和内存池有用,但仅适用于每个周期都很重要的大规模应用程序。对于像你这样的正常情况(我想),想都别想。

你不应该在 C++ 中使用 malloc。使用 new/deletenew[]/delete[] 或使用像 std::shared_ptr<T>().

这样的智能指针

malloc 不调用对象构造函数,并且 malloc 必须用 free 撤消(不调用对象析构函数)。最重要的是,malloc 不是类型安全的,因为它 returns 和 void*。除非你有充分的理由,否则请远离 malloc.