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