AYUDA! - PROBLEMA CON MEMORIA
Publicado por matias (1 intervención) el 13/09/2006 03:52:53
Hola, estoy con un proyecto en Borland C++.
Consta de una simulacion de un estacionamiento, pero en un entorno "visual" (estilo de ventana...) y use pilas y el mouse.
Para usar el mouse tuve que programar en assembler...asi que algunas funciones trabajaban sobre el lugar de memoria de alojamiento del mouse, provocando que las variables cambiaran.
Entonces comence a usar la funcion "MALLOC". Al usar esta funcion, debo hacer q cada variable que declare con MALLOC sea un puntero.
Mi problema esta en que en funciones como el GOTOXY, o en una simple funcion, la variable sigue tomando cualquier valor.
EL EJEMPLO ES ESTE (una funcion que hace la animacion de un cochecito, luego de cliquearlo):
/* Xinicio es la variable que indica en q posicion X estaba el coche originalmente
Lo mismo para Yinicio (indica la pos en Y) */
void MoverCoche(int *Xinicio,int *Yinicio,pila *p)
{
int aux;
int auxx;
int auxxx;
int auxxxx;
Xinicio=(int *)malloc(24);
Yinicio=(int *)malloc(24); /* me detengo aca y usando WATCHES miro el estado de la
variable Yinicio...y me aparece -31513!! (cuando deberia ser
entre 10 y 22 masomenos)
int *aa;
aa=(int *)malloc(24);
//************* MoViMiEnTo 1 ****************
textbackground(11);
aux=*Xinicio;
auxx=*Yinicio;
gotoxy(aux,auxx+1);cprintf("%i",B);
textbackground(7);
gotoxy(aux,auxx);cprintf(" ");
textbackground(11);
delay(50);
gotoxy(aux,auxx+2);cprintf("%i",B);
textbackground(7);
gotoxy(aux,auxx+1);cprintf(" ");
//************* MoViMiEnTo 2 ****************
textbackground(11);
aux=22;
if(*Xinicio<=aux)
{
for(*aa=*Xinicio;*aa<23;*aa++)
{
[...]
POR FAVOR NECESITO AYUDA!!... alguien podria explicarme por favor por qué sucede esto y que debo hacer????????????????????????????????????????????????
(si necesitan algun dato mas o no entienden mi "intento de explicacion" avisenme x favor...)
MUCHAS!!! gracias x adelantado... =D
Consta de una simulacion de un estacionamiento, pero en un entorno "visual" (estilo de ventana...) y use pilas y el mouse.
Para usar el mouse tuve que programar en assembler...asi que algunas funciones trabajaban sobre el lugar de memoria de alojamiento del mouse, provocando que las variables cambiaran.
Entonces comence a usar la funcion "MALLOC". Al usar esta funcion, debo hacer q cada variable que declare con MALLOC sea un puntero.
Mi problema esta en que en funciones como el GOTOXY, o en una simple funcion, la variable sigue tomando cualquier valor.
EL EJEMPLO ES ESTE (una funcion que hace la animacion de un cochecito, luego de cliquearlo):
/* Xinicio es la variable que indica en q posicion X estaba el coche originalmente
Lo mismo para Yinicio (indica la pos en Y) */
void MoverCoche(int *Xinicio,int *Yinicio,pila *p)
{
int aux;
int auxx;
int auxxx;
int auxxxx;
Xinicio=(int *)malloc(24);
Yinicio=(int *)malloc(24); /* me detengo aca y usando WATCHES miro el estado de la
variable Yinicio...y me aparece -31513!! (cuando deberia ser
entre 10 y 22 masomenos)
int *aa;
aa=(int *)malloc(24);
//************* MoViMiEnTo 1 ****************
textbackground(11);
aux=*Xinicio;
auxx=*Yinicio;
gotoxy(aux,auxx+1);cprintf("%i",B);
textbackground(7);
gotoxy(aux,auxx);cprintf(" ");
textbackground(11);
delay(50);
gotoxy(aux,auxx+2);cprintf("%i",B);
textbackground(7);
gotoxy(aux,auxx+1);cprintf(" ");
//************* MoViMiEnTo 2 ****************
textbackground(11);
aux=22;
if(*Xinicio<=aux)
{
for(*aa=*Xinicio;*aa<23;*aa++)
{
[...]
POR FAVOR NECESITO AYUDA!!... alguien podria explicarme por favor por qué sucede esto y que debo hacer????????????????????????????????????????????????
(si necesitan algun dato mas o no entienden mi "intento de explicacion" avisenme x favor...)
MUCHAS!!! gracias x adelantado... =D
Valora esta pregunta


0