我只想知道我们何时以及为什么必须使用malloc并分配足够的内存。
我应该在目标指针中使用还是什么?
在C++中,不鼓励使用malloc
/free
。您应该改用new
/delete
,它分配一个内存块并初始化它(默认构造(。从 C++11 开始,即使是new
/delete
也应该避免,您应该改用像std::unique_ptr
这样的智能指针。但是,malloc
对于原始缓冲区和内存池可能仍然有用,但仅在每个周期都很重要的大规模应用程序中有用。对于像您这样的正常情况(我想(,甚至不要考虑它。
你不应该在C++中使用malloc。改用new
/delete
或new[]
/delete[]
或使用智能指针,如std::shared_ptr<T>()
。
malloc
不调用对象构造函数,并且必须使用free
(不调用对象析构函数(撤消malloc
。最重要的是,malloc
不是类型安全的,因为它返回一个void*
。除非您有充分的理由,否则请远离malloc
。