error

Suar
10 de Agosto del 2004
hola a todos!
tengo el siguiente problema y no se el origen ni la solucion.
si alguien puede echarme una mano.
al ejecutar el siguiente codigo:

/--------------------------------------------/
#include <stdio.h>

#define ENTRADA FICENTRADA01

#define FICENTRADA00 "cdbola.ig2"
#define FICENTRADA01 "cdcilin.ig2"
#define FICENTRADA02 "cdcoche.ig2"
#define FICENTRADA03 "cdcono.ig2"
#define FICENTRADA04 "cdcubo.ig2"
#define FICENTRADA05 "cdpied.ig2"
#define FICENTRADA06 "cdpomo.ig2"
#define FICENTRADA07 "afeitar.ig2"
#define FICENTRADA08 "bola.ig2"
#define FICENTRADA09 "cara.ig2"
#define FICENTRADA10 "cara3.ig2"
#define FICENTRADA11 "casa.ig2"
#define FICENTRADA12 "cilindro.ig2"
#define FICENTRADA13 "coche.ig2"
#define FICENTRADA14 "cono.ig2"
#define FICENTRADA15 "cono2.ig2"
#define FICENTRADA16 "copa.ig2"
#define FICENTRADA17 "cubo.ig2"
#define FICENTRADA18 "escena.ig2"
#define FICENTRADA19 "forma.ig2"
#define FICENTRADA20 "frutero.ig2"
#define FICENTRADA21 "gears.ig2"
#define FICENTRADA22 "inter.ig2"
#define FICENTRADA23 "jarron.ig2"
#define FICENTRADA24 "mantel.ig2"
#define FICENTRADA25 "pedest.ig2"
#define FICENTRADA26 "piedras.ig2"
#define FICENTRADA27 "pieza.ig2"
#define FICENTRADA28 "piezas.ig2"
#define FICENTRADA29 "pomo.ig2"
#define FICENTRADA30 "rinoce.ig2"
#define FICENTRADA31 "robot.ig2"
#define FICENTRADA32 "servi.ig2"
#define FICENTRADA33 "tetera.ig2"
#define FICENTRADA34 "toroide.ig2"


struct _vertice {
float x;
float y;
float z;
};

struct _Objvert {
struct _vertice *numver;
};

struct _Objvert *vobjeto;

struct _triangulo {
int v1;
int v2;
int v3;
};

struct _Objtrian {
struct _triangulo *numtri;
};

struct _Objtrian *tobjeto;


main()
{
FILE *f;
int i,j,k;
int Nobj; /*numero de objetos en la escena*/
int Ntri; /*numero de triangulos de un objeto*/
int Rx,Ry; /*Resolucion*/
int orix,oriy; /*Inicio del marco*/
int Pro,TipoPro; /*Proyeccion y Tipo*/
float Vx1,Vx2,Vy1,Vy2,Vz1,Vz2; /*volumen*/
float Fpx,Fpy,Fpz; /*poscion del foco*/
float Ilr,Ilg,Ilb; /*color del foco*/
float Ia,If; /*Intensidad ambiente, Int. del foco.*/

int a,b,c;

int nver; /*numero de vertices de un objeto */
int dato; /* dato generico */
float x,y,z; /* un vertice */
int v1,v2,v3; /* los tres vertices del triangulo */
float Cr,Cg,Cb; /* un color */
float Ka,Kd,Ks,Cn; /* coeficientes de un objeto */
char ch;


printf("Lectura de fichero %s\n",ENTRADA);
if( (f=fopen(ENTRADA,"r"))==NULL) exit(1);

fscanf(f,"Escena\n");
fscanf(f,"Objetos %d\n",&Nobj);
fscanf(f,"Resolucion %d %d\n",&Rx,&Ry);
fscanf(f,"Origen %d %d\n",&orix,&oriy);
fscanf(f,"Camara\n");
fscanf(f,"Proyeccion %d\n",&Pro);
fscanf(f,"Tipo %d\n",&TipoPro);
fscanf(f,"Volumen %f %f %f %f %f %f\n",&Vx1,&Vx2,&Vy1,&Vy2,&Vz1,&Vz2);
fscanf(f,"Luz\n");
fscanf(f,"Pos %f %f %f\n",&Fpx,&Fpy,&Fpz);
fscanf(f,"Color %f %f %f\n",&Ilr,&Ilg,&Ilb);
fscanf(f,"Ia %f\n",&Ia);
fscanf(f,"If %f\n",&If);
for(i=0;i<Nobj;i++)
{
fscanf(f,"Objeto %d\n",&dato);
fscanf(f,"Color %f %f %f\n",&Cr,&Cg,&Cb);
fscanf(f,"Ka %f\n",&Ka);
fscanf(f,"Kd %f\n",&Kd);
fscanf(f,"Ks %f\n",&Ks);
fscanf(f,"Cn %f\n",&Cn);
fscanf(f,"Sombreado %d\n",&dato);

fscanf(f,"Vertices %d\n",&nver);
for (j=0;j<nver;j++)
{
fscanf(f,"V %d %f %f %f\n",&dato,&x,&y,&z);
}

fscanf(f,"Triangulos %d\n",&Ntri);printf("-%d-\n",Ntri);
for (j=0;j<Ntri;j++)
{
fscanf(f,"T %d %d %d %d\n",&dato,&v1,&v2,&v3);
tobjeto[Nobj].numver[dato].v1=v1;
tobjeto[Nobj].numver[dato].v2=v2;
tobjeto[Nobj].numver[dato].v3=v3;
}

}

fscanf(f,"%c",&ch);printf("%c",ch);
fscanf(f,"%c",&ch);printf("%c",ch);
fscanf(f,"%c\n",&ch);printf("%c",ch);
fclose(f);


for(i=0;i<Ntri;i++){
printf("%d %d %d\n",tobjeto[Nobj].numver[i].v1,tobjeto[Nobj].numver[i].v2,tobjeto[Nobj].numver[i].v3);
}




printf("\nPulsa\n");getchar();
}



ME APARECE ESTE ERROR:

Subsistema MS-DOS de 16 bits

C\Trabajos\tc\TC.EXE
la CPU NTVDM ha encontrado una instruccion no permitida.CS:0f51 IP:1976 OP:3e 63 05 0 06 Elija "cerrar" para finalizar la aplicacion.

CERRAR OMITIR

Si alguien puede ayudarme se lo agradeceria muxo.
GRACIAS A TODOS.

DRIZZT
10 de Agosto del 2004
Intenta ejecutarlo en otro PC, que tenga una version de Windows inferior a Windows XP. Preferiblemente W98, suerte. :)

suar
10 de Agosto del 2004
buenas.
he intentado ejecutarlo en otro pc con windows 98 y obtengo el mismo error.
creo que el problema puede estar en liberar la
memoria usada dinamicamente antes de abandonar el programa.
Pero no se como hacerlo,si alguien me puede ayudar.
Muchas gracias

suar
10 de Agosto del 2004
weno a ver si alguien me pude ayudar.
tengo otra pregunta:
a veces al compilar se cierra turboc,sobre todo cuando ya he ejecutado varias veces el programa.
alguien sabe a que se puede deber.
gracias