C ++中的new和malloc()之间的区别

在这篇文章中,我们将学习有关new和malloc() C ++的知识,new和C有什么区别malloc()

快速介绍new和 malloc()

malloc()

malloc()是stdlib.h的库函数,在C语言中用于运行时为N个块分配内存,它也可以在C ++编程语言中使用。每当程序需要内存在运行时声明时,我们都可以使用此函数。

new

new是C ++编程语言中的运算符,它还用于在运行时声明N个块的内存。

malloc()C ++中新运算符和函数之间的区别

两者都用于相同的目的,但仍然存在一些差异,差异是:

  1. new是运算符,而malloc()库函数。

  2. new分配内存并调用构造函数进行对象初始化。但是malloc()分配内存,并且不调用构造函数。

  3. new的返回类型是确切的数据类型,而malloc()返回void *。

  4. 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