gratiszona

reserva dinamica de memoria en el lenguaje c

Los operadores new y delete se utilizan para reservar y liberar memoria dinamicamente. new y delete son parte del lenguaje C++ y no parte de una libreria como sucedia con las funciones equivalentes malloc() y free() de C. Ahora los operadores new y delete.
El proposito de new es crear arrays cuyo tamaño pueda ser determinado mientras el programa se ejecuta.
delete funciona igual que free() EN EL LENGUAJE C. La memoria a la que apunta el puntero es liberado, pero no el puntero en si.

A continuacion se presenta a modo de ejemplo un programa que reserva memoria de modo
dinamico para un vector de caracteres:
#include <iostream.h>
#include <string.h>
void main() {
char Nombre[50];
cout << 'Introduzca su Nombre:';
cin >> Nombre;
char *CopiaNombre = new char[strlen(Nombre)+1];
strcpy(CopiaNombre, Nombre); //copio Nombre en la variable CopiaNombre
cout << CopiaNombre;
delete [] CopiaNombre; //libero memoria
}
Se puede utilizar el operador new para crear variables de cualquier tipo. New devuelve, en todos los casos, un puntero a la variable creada. tambien se puedEN EL LENGUAJE Crear variables de tipos definidos por el usuario.
struct usuario {
..........
};
usuario* Un_Usuario;
Un_Usuario = new usuario;
Cuando una variable ya no es necesaria se destruye con el operador delete para poder utilizar
la memoria que estaba ocupando, mediante una instruccion del tipo:

Anterior: arrays y punteros
Siguiente: funciones