제일 중요한 포인트는 생성자의 호출 유무이다.

  • malloc
    • 동적 메모리를 할당한다.
  • new
    • 동적 메모리를 할당한다.
    • 생성자를 호출한다.

마찬가지로, free와 delete의 핵심 차이점은 소멸자의 호출 여부

기타 차이점으로는

  • 호출 하는 방법이 다르다.
  • new 의 경우에 메모리 할당에 실패하면 예외(std::bad_alloc)가 발생한다.

참고

https://msdn.microsoft.com/library/kftdy56f.aspx

http://en.cppreference.com/w/cpp/memory/new/operator_new