• Viernes 15 de Noviembre de 2024, 02:04

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - ismaibz

Páginas: [1]
1
C++ Builder / Re: Error de aceso
« en: Lunes 15 de Noviembre de 2010, 17:38 »
El metodo de torneo_equipo_nombre no me da ningun problema es el de torneo_numero_equipos(t)
tiene que ver con el  acceso a la posicion de memoria y con la declaracion en el *.h pero no se exactamente que falla por que son trozos de codigo dados por el profesor de programacion y no deberia fallar....

2
C++ Builder / Re: Error de aceso
« en: Lunes 15 de Noviembre de 2010, 17:23 »
bool torneo_nombre_equipo(TTorneo t,int id_equipo, AnsiString &nombre_equipo)
{
        if (id_equipo <= t.num_equipos && id_equipo >=0) {
             nombre_equipo = t.equipos_nombres[id_equipo];
             return  true;}  else{ return  false;}
        }
esta es la implementacion y me acabo de dar cuenta de que hay un error en el trozo de antes  :oops:
pero no creo que el problema sea ese ni mucho menos, sino en esto:
esto esta en UFORMBorrarEquipo.h
private:   // User declarations
        TTorneo &t;
public:      // User declarations
        __fastcall TFormBorrarEquipo(TComponent* Owner, TTorneo &x);

y esto en UFORMBorrarEquipo.cpp

__fastcall TFormBorrarEquipo::TFormBorrarEquipo(TComponent* Owner, TTorneo &x)
        : TForm(Owner), t(x)
{
}

¿puede tener alguna relacion?

3
C++ Builder / Re: Error de aceso
« en: Lunes 15 de Noviembre de 2010, 17:06 »
void __fastcall TFormBorrarEquipo::FormCreate(TObject *Sender)
{
   int num_equipos=torneo_numero_equipos(t);   //Todo este codigo es proporcionado por el profesor
   AnsiString nombre_equipo;
   for (int i=0; i<num_equipos; i++)
       {
           torneo_nombre_equipo(t,i,nombre_equipo);
           ComboBoxEquipo->Items->Values=nombre_equipo;
        }
} //

Este es el metodo y en la cabecera de la unidad esta puesto: #include "UTorneo.h" donde esta declarado el registro TTorneo que s la siguiente:

struct TTorneo {
        int num_equipos;
        AnsiString equipos_nombres[MAX_EQUIPOS];
        TPartido partidos[MAX_EQUIPOS][MAX_EQUIPOS];
        TResumenEquipo clasificacion[MAX_EQUIPOS];
        int equipos_posiciones[MAX_EQUIPOS];
        };

el metododo int torneo_numero_equipos(TTorneo t) en teoria te devuelve num_equipos y la cuestion es que me da errores pero si me limito a darle a aceptar el programa acaba arrancando y obtiene bien el numero de equipos.
Este codigo esta en una unidad llamada UFORMBorrarEquipo.cpp
En otra unidad llamada UFORMClasificacion.cpp no me da ningun error

4
C++ Builder / Error de aceso
« en: Lunes 15 de Noviembre de 2010, 16:43 »
Hola,

Estudio ingenieria informatica y estamos empezando a programar en C++ con el C++ Builder 5 y me da un error un poco raro al compilar
He creado una unidad llamada  UTorneo.cpp con su UTorneo.h
He declarado el metodo:

int torneo_numero_equipos (TTorneo t)     "TTorneo es un registro"
{
    return t.num_equipos;
}

en teoria me tiene que devolver una variable entera con el numero de equipos. Hasta ahi todo bien.
Cuando hago lo siguiente: int num_equipos=torneo_numero_equipos(t);     >>Codigo proporcionado por un profesor de la universidad<< o cuando quiero llamar a este metodo desde otra parte me da el siguiente error:
Project Torneo.exe raised exceptcion class EAccessViolation with message 'Access violation address 0040352B in module 'Torneo.exe'.Read of address 0000000'.Process stopped.

¿A que puede ser debido este error?

Gracias

Páginas: [1]