- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference between new and malloc( )
In this post, we will understand the difference between ‘new’ and ‘malloc’.
new
It is present in C++, Java, and C#.
It is an operator that can be used to call the constructor of the object.
It can be overloaded.
If it fails, an exception is thrown.
It doesn’t need the ‘sizeof’ operator.
It doesn’t reallocate memory.
It can initialize an object when allocating memory for it.
The memory allocated by ‘new’ operator can be de-allocated using ‘delete’ operator.
It reduces the execution time of the application.
Example
#include<iostream> using namespace std; int main(){ int *val = new int(10); cout << *val; getchar(); return 0; }
malloc
This is present in C language.
It is a function that can’t be overloaded.
When ‘malloc’ fails, it returns NULL.
It requires the ‘sizeof’ operator to know how much memory has to be allotted.
It can’t call a constructor.
Memory can’t be initialized using this function.
The memory allocated using malloc can be deallocated using free function.
Memory allocated by malloc method can be reallocated using realloc method.
It requires more time to execute applications.
Following is the example of malloc in C language −
Example
#include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char *str; /* Initial memory allocation */ str = (char *) malloc(5); strcpy(str, "amit"); printf("String = %s, Address = %u
", str, str); }