What is the difference between "new" and "malloc" and "calloc" and others in family?
(When) Do I need anything other than "new" ?
Is one of them implemented using any other?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
newanddeleteare C++ specific features. They didn’t exist in C.mallocis the old school C way to do things. Most of the time, you won’t need to use it in C++.mallocallocates uninitialized memory. The allocated memory has to be released withfree.callocis likemallocbut initializes the allocated memory with a constant (0). It needs to be freed withfree.newinitializes the allocated memory by calling the constructor (if it’s an object). Memory allocated withnewshould be released withdelete(which in turn calls the destructor). It does not need you to manually specify the size you need and cast it to the appropriate type. Thus, it’s more modern and less prone to errors.