elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre memoria dinamica C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre memoria dinamica C++  (Leído 3,944 veces)
erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Duda sobre memoria dinamica C++
« en: 11 Septiembre 2013, 06:25 am »

Buenas noches, acabo de notar que cuando creo una memoria dinamica usando new[], no tengo necesidad de usar el encabezado <new>, pero en una pagina de C++ indica que ésta es necesaria para invocar ese metodo: http://www.cplusplus.com/reference/new/  , aqui tienen mi codigo y veran que funciona perfectamente sin la cabecera <new>

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main( int argc, char* args[] )
  6. {
  7.    int *arreglo;
  8.    int cantidad, i, a = 0;
  9.    cout << "Ingrese el tamaño del arreglo: ";
  10.    cin >> cantidad;
  11.    // El metodo nothrow permite que el programa se siga ejecutando incluso si el puntero recibe un parametro invalido
  12.    arreglo = new (nothrow) int [cantidad];
  13.    if( arreglo == 0)
  14.        cout << "Error, no se pudo asignar memoria" << endl;
  15.    else
  16.        for( i = 0; i < cantidad; i++ )
  17.        {
  18.            arreglo[i] = a;
  19.            a++;
  20.            cout << arreglo[i] << endl;
  21.        }
  22.    // El operador delete sirve para liberar la memoria dinamica utilizada
  23.    delete [] arreglo;
  24.    cin.get();
  25. return 0;
  26. }
  27.  
  28.  

¿Sera que ya no es necesario usar esa cabecera? Que alguien me explique que diferencia hay entre usarla o no, por favor, gracias.


En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Duda sobre memoria dinamica C++
« Respuesta #1 en: 11 Septiembre 2013, 08:12 am »

En la pagina que mencionas se explica porque no es necesaria la inclusión de ese encabezado, por ejemplo en la pagina sobre el operador new:
Citar
The default allocation and deallocation functions are special components of the standard library; They have the following unique properties:

* Global: All three versions of operator new are declared in the global namespace, not within the std namespace.

* Implicit: The allocating versions ((1) and (2)) are implicitly declared in every translation unit of a C++ program, no matter whether header <new> is included or not.

* Replaceable: The allocating versions ((1) and (2)) are also replaceable: A program may provide its own definition that replaces the one provided by default to produce the result described above, or can overload it for specific types.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: Duda sobre memoria dinamica C++
« Respuesta #2 en: 11 Septiembre 2013, 08:22 am »

Muchas gracias, me salte ese pedazo, aunque igual creo que empezare a incluir ese encabezado de manera que se vea mas formal el codigo  :)
En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda sobre memoria dinamica C++
« Respuesta #3 en: 11 Septiembre 2013, 08:30 am »

Muchas gracias, me salte ese pedazo, aunque igual creo que empezare a incluir ese encabezado de manera que se vea mas formal el codigo  :)

Dudo que encuentres muchos códigos fuente en los que se incluya la susodicha cabecera.

El operador new está disponible siempre en todo el código fuente y por esa razón no se incluye su cabecera por defecto.
En línea

erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: Duda sobre memoria dinamica C++
« Respuesta #4 en: 11 Septiembre 2013, 09:06 am »

Muchas gracias, si es asi, ¿existe algun otro operador el cual no haya necesidad de incluir su cabecera?
En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda sobre memoria dinamica C++
« Respuesta #5 en: 11 Septiembre 2013, 09:13 am »

No te preocupes por cosas como estas.

Lo ideal es que solamente añadas un include cuando el compilador te lo pida.

En proyectos pequeños es más o menos fácil saber que includes tienes que añadir en cada archivo... pero conforme el proyecto crece y se van creando dependencias entre archivos la cosa cambia.

Añadir includes innecesarios hace que el código tarde más en compilar y, claro, en proyectos pequeños no se nota... pero va siendo más palpable conforme añades archivos al proyecto.
En línea

erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: Duda sobre memoria dinamica C++
« Respuesta #6 en: 11 Septiembre 2013, 09:34 am »

Gracias de nuevo  :)
En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre ip dinamica
Dudas Generales
Rinformatic 1 2,019 Último mensaje 13 Junio 2010, 16:43 pm
por Dokuz
[DUDA] Memoria Dinámica en C++
Programación C/C++
Zodiak98 3 2,626 Último mensaje 5 Junio 2013, 18:48 pm
por Zodiak98
Duda Memoria Dinamica
Programación C/C++
Pepe2009 6 3,211 Último mensaje 13 Agosto 2013, 17:59 pm
por Pepe2009
dudas sobre memoria dinamica.
Programación C/C++
Drewermerc 2 1,886 Último mensaje 1 Mayo 2014, 16:18 pm
por Drewermerc
Consutla sobre un problema con punteros y memoria dinamica.
Programación C/C++
Arturo400 1 1,752 Último mensaje 22 Septiembre 2016, 22:15 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines