Código:
#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
struct Datos {
string Nombre;
int Edad;
};
struct Categorias {
string Deporte;
int Atletas;
Datos Informacion;
};
void Ingresar_Deportista ( Categorias *Deportes, int Cant_Deportes );
int main(int argc, char *argv[])
{
int Num_Deportes=1; //Tamaño Variable - Cambia En Tiempo De Ejecucion
Categorias *Deportes= new Categorias[Num_Deportes];
Ingresar_Deportista( Deportes, Num_Deportes );
system("PAUSE");
return EXIT_SUCCESS;
}
Ese incremento de tamaño lo implemente en la funcion Ingresar_Deportista justo al final
Código:
void Ingresar_Deportista ( Categorias *Deportes, int Cant_Deportes ){
int i=0, Aux=0;
char Opcion='s';
while(Opcion=='s'){
cout<<"Deporte: ";
cin>>Deportes[i].Deporte;
cout<<"\nNombre: ";
cin>>Deportes[i].Informacion.Nombre;
cout<<"Edad: ";
cin>>Deportes[i].Informacion.Edad;
cout<<"\nIngresar Mas? Si(s) ";
Opcion=getch();
i+=1;
system("cls");
//Si Supera El Tamaño Maximo (Darle Mas Memoria Al Arreglo Dinamico)
if( i>=Cant_Deportes ){
Categorias *Agrandar= new Categorias[Cant_Deportes+1];
for(Aux=0; Aux<Cant_Deportes; Aux++)
Agrandar[Aux]=Deportes[Aux];
Deportes=Agrandar;}
}
}
El codigo compila pero despues de ingresar el tercer deporte el ejecutable se totea, a que se debe esto?