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