ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

RE: PRESENTACION


Enviado por   •  28 de Abril de 2014  •  4.683 Palabras (19 Páginas)  •  165 Visitas

Página 1 de 19

INTRODUCCION

new es un operador del lenguaje C++ y malloc es una función estándar.

- El operador new permite la creación de objetos y la incialización de éstos (mandar a llamar al constructor de la clase/objeto) Mientras que malloc NO.

- Con el operador new al generarse un error por la petición de memoria se genera una excepción , mientras que con malloc retorna NULL.

- Con el operador new, cuando solicitas memoria tu específicas la cantidad de elementos que requieres, mientras que con malloc indicadas la cantidad de bytes.

- Es posible sobrecargar el operador new dentro de tu clase/objeto mientras que con malloc NO.

- El operador new es "safe-type" mientras que malloc NO. Es decir, basta con mencionar que es requerido poner el tipo de dato, mientras que con malloc es un puntero void.

- Con el operador new para liberar la memoria utilizas delete, mientras que con malloc utilizas free.

Posiblemente se me escape una que otra, pero como vez existen grandes diferencias.

Una sugerencia a tu problema, es si utilizas C++ es preferible que utilices new, en caso contrario malloc.

Recuerda que con el ANSI C++, un estructura se puede tratar casi igual que una clase, por lo tanto es posible ponerle un constructor e incializar tus valores, entre otros.

Otras diferencias que podrás percibir es la forma sintáctica en como se solicita la memoria y se libera, las diferencias ya te las propuse, en cuanto a rendimiento y cosas semejantez, pienso que new sería un poco más rápido por ser un operador del lenguaje, mientras que malloc es una función.

Básicamente podrás sacar tus conclusiones en base a sus diferencias y utilizar la mejor que te convenga.

variable anónima en tiempo de ejecución, en caso de que dicha variable ya no sea necesaria.

La función new() reservará la cantidad apropiada de memoria para almacenar un dato de dicho tipo. El prototipo de

la función new() es:

void *new(<nombre_tipo>);

La función new también se encarga de averiguar cual es el tamaño en bytes del tipo de datos para el cual se desea

reservar memoria. Observar en el ejemplo anterior que se indica el que se quiere reservar memoria para un dato de tipo

char y no cual es el tamaño en bytes que se quiere reservar.

Tras una llamada con éxito, new() devuelve un puntero al primer byte de la región de memoria dispuesta del

montón. Si no hay suficiente memoria libre para satisfacer la petición, se produce un fallo de asignación y new()

devuelve un nulo.

La función delete() es la complementaria de new(). Una vez que la memoria ha sido liberada, puede ser

reutilizada en una posterior llamada a new(). El prototipo de la función delete() es:

La estructura de datos nos permite profundizar en el mundo de la programación, teniendo algunos aspectos importantes como la memoria del computador y la forma como se almacenan los datos en ésta, la forma como se puede liberar memoria dinámica mientras el programa esté en ejecución.

De ahí la importancia de tener claro los conceptos sobre variables estáticas y dinámicas, operadores y funciones para el manejo de la memoria dinámica y los apuntadores con la asignación dinámica de memoria.

Estos últimos son muy útiles en lenguajes sencillos como el C, ya que los apuntadores son una variable especial que permite guardar direcciones de otras variables, al igual que pueden pasar parámetros a las funciones para retomar valores.

Así que este primer trabajo colaborativo lo dedicaremos a realizar las actividades correspondientes a la aplicación de los conceptos relacionados con la primera unidad, lo cual nos va a permitir no solo afianzar nuestros conocimientos en programación, sino profundizar en ellos.

Memoria dinámica:

La reserva de memoria dinámica se hace en tiempo de ejecución después de leer los datos y de conocer el tamaño exacto del problema. Como consecuencia se adapta mucho mejor a las necesidades en cada caso.

El sitio donde se almacenan los objetos se denominan en ingles heap o free store traducido como montículo o memoria libre, y el sitio preciso donde se encuentre depende del compilador y el tipo de puntero utilizado. La creación y estrucción de los objetos esta en manos del programador a través de los operadores new y delete.

En C# las variables que se declaran son punteros y se pasan eficientemente con referencia, tampoco es necesario considerar la liberación de la memoria puesto que framework se encarga de liberar todas las referencias que no se estén utilizando y compactar la memoria para mejorar el rendimiento.

2.1.3 Ventajas de utilizar memoria dinámica vs memoria estática

La memoria dinámica sirve para que los programadores se adapten siempre al tamaño del problema que tienen que resolver sin desperdiciar recursos de memoria y esto se traduce en una mayor eficiencia en la ejecución de los programas, las ventajas de utilizar memoria dinámica se valoran mejor en comparación con la utilización de la reserva de la memoria estática, como se muestra en el siguiente cuadro.

TALER DE EJERCICIOS PARA SER RESUELTOS

1. Teniendo en cuenta la conceptualización y la aplicabilidad en el campo de la programación y el usos de la las variables estáticas y las variables dinámicas, realice un cuadro comparativo de las características, ventajas y desventajas.

VARIABLES ESTÁTICA

VENTAJAS DESVENTAJAS CARACTERÍSTICAS

Útil para variables locales

Para variables sensibles a la historia de un subprograma

Acceso directo permite mayor eficiencia

Falta de flexibilidad

No soporta recursión

Impide compartir memoria entre diferentes variables

Impide compartir memoria entre diferentes variables

VARIABLES DINÁMICAS:

VENTAJAS DESVENTAJAS CARACTERÍSTICAS

Útil para las estructuras dinámicas usando punteros

Alto grado de flexibilidad

Permite escribir código genérico

Dificultad en el uso correcto

Perdida en la capacidad de errores.

Las variables dinámicas se suelen utilizar para guardar resultados intermedios en los cálculos de las funciones.

2. Indique en dos párrafos la importancia de

...

Descargar como (para miembros actualizados) txt (18 Kb)
Leer 18 páginas más »
Disponible sólo en Clubensayos.com