new 和 malloc() 的区别
在这篇文章中,我们将了解“new”和“malloc”之间的区别。
new
它存在于C++、Java和C#中。
它是一个操作符,可以用来调用对象的构造函数。
它可以过载。
如果失败,则抛出异常。
它不需要“sizeof”运算符。
它不会重新分配内存。
它可以在为对象分配内存时对其进行初始化。
'new'运算符分配的内存可以使用'delete'运算符解除分配。
它减少了应用程序的执行时间。
示例
#includeusing namespace std; int main(){ int *val = new int(10); cout << *val; getchar(); return 0; }
malloc
这在C语言中是存在的。
它是一个不能重载的函数。
当'malloc'失败时,它返回NULL。
它需要'sizeof'运算符来知道必须分配多少内存。
它不能调用构造函数。
无法使用此函数初始化内存。
使用malloc分配的内存可以使用free函数释放。
通过malloc方法分配的内存可以使用realloc方法重新分配。
执行应用程序需要更多时间。
以下是C语言中malloc的示例-
示例
#include#include #include int main () { char *str; /* Initial memory allocation */ str = (char *) malloc(5); strcpy(str, "amit"); printf("String = %s, Address = %u\n", str, str); }