Diferencia entre nuevo y malloc () en C ++

Aprender: ¿Cuáles son nuevo y malloc () en C ++ Programming Language , ¿cuáles son las diferencias entre nuevo operador y malloc () en C ++ ?

En este post, vamos a aprender acerca de la nueva y malloc () en C ++, ¿cuáles son las diferencias entre nueva y malloc () ?

introducción rápida acerca de nuevo y malloc ()

malloc ()

malloc () es una función de biblioteca de stdlib.h y se utilizó en lenguaje C para asignar memoria para N bloques en tiempo de ejecución, sino que también puede ser utilizado en el lenguaje de programación C ++. Cada vez que un programa necesita memoria para declarar en tiempo de ejecución se puede utilizar esta función.

nueva

nueva es un operador en C ++ Programming Language, que también se utiliza para declarar la memoria de N bloques en tiempo de ejecución.

diferencias entre los nuevos operador y la función malloc () en C ++

Ambos se utilizan para mismo propósito, pero todavía tienen algunas diferencias, las diferencias son:

  1. nuevo es un operador mientras que malloc ( ) es una función de biblioteca.
  2. memoria nuevos asigna y llamadas de constructor de inicialización de objetos. Pero malloc () asigna memoria y no llama constructor.
  3. Return tipo de nueva es exactamente el tipo de datos while malloc () devuelve v OID * .
  4. nueva es más rápido que malloc () porque un operador es siempre más rápido que una función.

Ejemplo de malloc:

Este programa declarará memoria para 5 enteros en tiempo de ejecución utilizando la función malloc (), leer 5 números e imprimirlos.

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int *p; //pointer declaration
int i=0;
//allocating space for 5 integers
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;
}

salida

Enter elements :
10
20
30
40
50
Input elements are :
10
20
30
40
50

Ejemplo de nuevo:

Este programa declarará memoria para 5 enteros en tiempo de ejecución utilizando nuevo operador, lea 5 números e imprimirlos.

#include <iostream>
using namespace std;
int main()
{
int *p; //pointer declaration
int i=0;
//allocating space for 5 integers
p = new 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;
delete p;
return 0;
}

salida

Enter elements :
10
20
30
40
50
Input elements are :
10
20
30
40
50


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *