类型malloc C ++

这个问题在这里已经有了答案:

  • 我输入malloc的结果吗? 27个答案

  • 何时以及为什么要在C ++中调用malloc需求?

    总是在不分配给void * ,因为void *不会将其隐式转换为其他指针类型,而是它在C中的方式。但真正的答案是, 您不应该首先在C ++使用malloc


    我不是建议你应该使用new而不是malloc 。 现代C ++代码应该谨慎使用new代码,或者尽可能避免使用new代码。 你应该隐藏所有使用new或使用非原始类型(如Xeo提到的std::vector )。 由于我的经验有限,我没有资格向这个方向提供建议,但本文随着搜索“C ++避免新”应该有所帮助。 那么你会想看看:

  • 的std :: alocator
  • 智能指针

  • 编译你的C库。 编译你的C ++库。 让他们在使用它们的任何“主要”程序中表现出色。 要点是如果你维护一个混合的代码库,你可能想要从C ++的东西中分离纯C的东西。 否则你的C东西变成C ++的东西,只看起来像C.


    首先,在几乎所有情况下,不要在C ++程序中使用malloc ,而应该选择new因为它会确保在需要时调用构造函数等。

    但是,如果出于遗留原因,您试图避免尽可能多的重写 - 您需要转换任何未分配给void*指针的malloc调用。

    链接地址: http://www.djcxy.com/p/28423.html

    上一篇: Typecasting malloc C++

    下一篇: Is typecast required in malloc?