Memoria dinamica C++

11:12 p.m. Unknown 0 Comments













La asignación dinámica de memoria es útil en extremo cuando se manejan listas, debido a que permite que se expanda la lista conforme se agregan nuevos elementos y se con conforme se eliminan. Un ejemplo clásico  es el numero de alumnos de un salón, la cantidad de alumno puede ser N, y generar un arreglo como : a[10]  solo almacenara 10 alumnos y si son 30 no funcionara, es muy útil tener un mecanismo mediante el cual el arreglo pueda agrandarse y reducirse según sea necesario. Dos operadores en C++, new y delete,


new
Reserva el número de bytes solicitado por la declaración. Devuelve la dirección de la primera ubicación reservada o NULL si no se dispone de suficiente memoria.

delete
Libera un bloque de bytes reservado con anterioridad. La dirección de la primera ubicación reservada debe transmitirse como un argumento al operador.

Ejemplos

New

 //Francys System
//uso del new
int *calificaciones = new int;
//el puntero se utiliza para asignar un espacio  de memoria de tipo int
//otra manera
int *verduras;
verduras = new int(103);
//Se inicializa el en 5  

Arreglos
 //Francys System
//uso del new
int *calificaciones;
calificaciones = new int[10];

Otra manera
 
//Francys System
//uso del new
int calificaciones = new int[10];
//Un arreglo dimanico pero en una sola linea
Delete

 //Francys System
//uso del delete
delete verduras;
//para eliminar arregloas
int *calificaciones;
calificaciones = nrw int[10];
delete[] calificaciones;

Ejemplo funcional


      
      
      #include <iostream>
      #include <conio.h>
      using namespace std;
      
      int main() 
      {
       int *c;
        int numero;
       cout<< "Ingresa el numero de calificaciones  : : " <<endl;
        cin>>numero;
        c = new int[numero];
        for(int i=0;i < numero ; i++)
        {
       cout<< "Ingresa  la calificacion : : " <<endl;
        cin>>c[i];
        }
        cout<< "Calificacion de las materias"<<endl;
        for(int i=0;i < numero ; i++)
        {
       cout<< " calificaciones  : : " << c[i]<<endl;

        }
        delete[]c;
      getch();
      }
      

0 comentarios: