在这篇文章中,我们将学习有关new和malloc()
C ++的知识,new和C有什么区别malloc()
?
快速介绍new和 malloc()
malloc()是stdlib.h的库函数,在C语言中用于运行时为N个块分配内存,它也可以在C ++编程语言中使用。每当程序需要内存在运行时声明时,我们都可以使用此函数。
new是C ++编程语言中的运算符,它还用于在运行时声明N个块的内存。
malloc()
C ++中新运算符和函数之间的区别两者都用于相同的目的,但仍然存在一些差异,差异是:
new是运算符,而malloc()
库函数。
new分配内存并调用构造函数进行对象初始化。但是malloc()
分配内存,并且不调用构造函数。
new的返回类型是确切的数据类型,而malloc()
返回void *。
new比malloc()
运算符总是比函数快要快。
malloc的示例:
该程序将在运行时使用malloc()
函数声明5个整数的内存,读取5个数字并打印出来。
#include <iostream> #include <stdlib.h> using namespace std; int main(){ int *p; //指针声明 int i=0; //为5个整数分配空间 p = (int*) malloc(sizeof(int)*5); cout<<"Enter elements :\n"; for(i=0;i<5;i++) cin>>p[i]; cout<<"Input elements are :\n"; for(i=0;i<5;i++) cout<<p[i]<<endl; free(p); return 0; }
输出结果
Enter elements : 10 20 30 40 50 Input elements are : 10 20 30 40 50