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

时间:2017-07-14 14:11:36

标签: c++ malloc

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

我应该在目的地指针中使用什么?

2 个答案:

答案 0 :(得分:3)

在C ++中,不鼓励使用malloc / free。您应该使用new / delete代替内存块 AND 初始化它(默认构造)。从C ++ 11开始,应避免使用new / delete,而应使用std::unique_ptr之类的智能指针。但是,malloc对于原始缓冲区和内存池可能仍然有用,但仅适用于每个循环都很重要的大型应用程序。对于像你这样的正常情况(我想),不要考虑它。

答案 1 :(得分:1)

你不应该在C ++中使用malloc。请改用new / deletenew[] / delete[],或使用std::shared_ptr<T>()等智能指针。

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