lunes, 22 de septiembre de 2008

2.1.2- Manejo de Memoria Dinámica

*Memoria Dinámica:
Las reservas de mamoria dinámica se hacen tiempo de ejecucion despues de leer los datos y de conocer el tamaño eacto del problema a resolver, como consecuancia se adapta mejor a las necesidades de cada caso pero en contrapartida es un poco mas dificil de programar.
Tanto la creación como destruccion de los objetos està en manos del programador a traves de los operadores "new" y "delette", el sitio donde se almacenan los objetos, suelen llamarse heap ò free store, traducido como montículo o memoria libre.
En c# no es necesario considerar la liberaciòn de la memoria dinamica puesto que FrameWork se encarga de liberar todas las referencias que no se esten utilizando y compactar la memoria para mejorar el rendimiento.

En C# todas las clases son tratadas sintacticamente como referencias y no permite elegir como reservar memoria para una instancia en particular, en cambio obliga a que un int sea un tipo valor.

class Program
{
void imprime_binario(int n)
{
if (n>=2)
{

imprime_binario(n/2);

Console.Write("{0}",n%2);

}
else
Console.Write("{0}",n);
}
static void Main (string []args)
{
Console.Write("Alimenta un Número Entero: ");

int numero=Int32.Parse(Console.ReadLine());

Program p=new Program();
Console.Write("\n\tNumero Entero {0} en Código Binario: ", numero); p.imprime_binario(numero);
Console.Write("\n\n\t\tDesea hacer otra Operación S/N: ");

op = char.Parse(Console.ReadLine());

}
while (op == 's' || op == 'S');
}
}

No hay comentarios: