[ create a new paste ] login | about

Link: http://codepad.org/IJZWFV5n    [ raw code | fork ]

C++, pasted on Dec 6:
#include <iostream>
//#include <exception>
#include <new>          // std::bad_alloc
#include <windows.h>
using namespace std;

struct Alumnos {
    char nombre[15];
    char apellido[15], estado;
    int dni;
    float notas[3], promedio;
};

//agenda para el profesor
struct Agenda {
    char nombre[15];
    char apellido [15];
    char materia[50];
    //alumnos registro[]; <-Esto esta mal. Debes indicar siempre un tamaƱo si no lo haces de forma dinamica.
};

int main () {
    Agenda *pAgenda = NULL; //Eso declara el puntero
    int N = 2;  // N lo pides aqui. Yo lo puse 2 solo para probar
    
    try { //control de errores
        pAgenda = new Agenda[N]; 
        
    } catch ( std::bad_alloc& ba ) { //si hay un error obtenemos el error
        cout << "Imposible asignar espacio. Error: " << ba.what() << endl; //avisamos el error
        exit ( -1 );                   // salimos con error
    }
    //si pasamos de aqui ya tenemos la memoria asignada
    
    //probamos guardar cosas
    strcpy(pAgenda[0].nombre, "Charlie");
    strcpy(pAgenda[1].nombre, "Pepe");
    
    //y probamos imprimir
    cout << pAgenda[0].nombre << endl;
    cout << pAgenda[1].nombre << endl;    

    delete[] pAgenda; // muy importante para no haber fugas de memoria
    pAgenda = NULL;  // Buena practica es establecer el puntero a nulo para que no apunte a la direccion ninguna para no cometer errores. Es opcional
    
    cin.ignore();
    return 0;
}


Create a new paste based on this one


Comments: