Home C C++ Java Python Perl PHP SQL JavaScript Linux Online Test Forum

Home » C++ » Difference between new & malloc

What is the difference between C++ new and C malloc

C++ NewC Malloc
  • 1.Memory allocated from 'Free Store'
  • 2.Returns a fully typed pointer.
  • 3.new (standard version) never returns a
    NULL(will throw on failure)
  • 4.Are called with Type-ID (compiler calculates the size)
  • 5.Has a version explicitly to handle arrays.
  • 6.Reallocating (to get more space) not handled intuitively (because of copy constructor).
  • 7.Whether they call malloc/free is implementation defined.
  • 8.Can add a new memory allocator to deal with low memory (set_new_handler)
  • 9.operator new/delete can be overridden legally
  • 10.constructor/destructor used to initialize/destroy the object
  • 1.Memory allocated from 'Heap'
  • 2.Returns a void*
  • 3.Returns NULL on failure
  • 4.Must specify the size required in bytes.
  • 5.Allocating array requires manual calculation of space.
  • 6.Reallocating larger chunk of memory simple (No copy constructor to worry about)
  • 7.They will NOT call new/delete
  • 8.No way to splice user code into the allocation sequence to help with low memory.
  • 9.malloc/free can NOT be overridden legally