#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;
};
int main () {
Agenda agenda;
int N = 2;
try { //control de errores
agenda.registro = new Alumnos[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(agenda.registro[0].nombre, "Charlie");
strcpy(agenda.registro[1].nombre, "Pepe");
//y probamos imprimir
cout << agenda.registro[0].nombre << endl;
cout << agenda.registro[1].nombre << endl;
delete[] agenda.registro; // muy importante para no haber fugas de memoria
agenda.registro = 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;
}