C++ 何时以及为什么我们必须使用malloc?

C++ 何时以及为什么我们必须使用malloc?,c++,malloc,C++,Malloc,我只想知道我们何时以及为什么必须使用malloc并分配足够的内存 在C++中,应该使用目的指针还是什么?< p>,不鼓励使用 MalcC /Cuth>免费< /代码>。您应该改用new/delete,它分配一块内存,并初始化它(默认构造)。从C++11开始,即使是new/delete,也应该避免使用智能指针,比如std::unique_ptr。但是,malloc对于原始缓冲区和内存池可能仍然有用,但仅适用于每个循环计数的大规模应用程序。对于像你这样的正常情况(我想),不要想它。 < P>你不应该

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


在C++中,应该使用目的指针还是什么?

< p>,不鼓励使用<代码> MalcC /Cuth>免费< /代码>。您应该改用
new
/
delete
,它分配一块内存,并初始化它(默认构造)。从C++11开始,即使是
new
/
delete
,也应该避免使用智能指针,比如
std::unique_ptr
。但是,
malloc
对于原始缓冲区和内存池可能仍然有用,但仅适用于每个循环计数的大规模应用程序。对于像你这样的正常情况(我想),不要想它。

< P>你不应该在C++中使用MALLC。使用
new
/
delete
new[]
/
delete[]
或使用智能指针,如
std::shared_ptr()


malloc
不调用对象构造函数,
malloc
必须使用
free
(不调用对象析构函数)撤消。最重要的是,
malloc
不是类型安全的,因为它返回一个
void*
。除非你有很好的理由,否则远离“代码> MalOC/<代码> .< /P>,因为你的问题用C++来标记,我想你很少需要使用<代码> MalOC 。更喜欢
std::make_unique
std::make_shared
,有时也喜欢
new
。不确定你是在问什么时候<代码> MalOC/<代码>应该是首选的,还是你在问一般的动态内存分配。如果你问这个问题,答案是:永远不在C++中?您不应该在C++中调用<代码> MalOC/<代码>。在大多数情况下,它都是错误的,并且会导致未定义的行为。更一般地说,在我看来,您可能需要阅读。如果您知道自己在做什么,并且确定malloc是正确的工具(例如,在自定义分配器中)。在常规C++代码中,我看不出它有什么用。