Ver Mensaje Individual
  #41 (permalink)  
Antiguo 25/09/2006, 18:00
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 1 mes
Puntos: 2
OK, no es mi intencion desacreditarte, solo quiero, aclarar que algoritmo de instru es incorrecto, me gustaría que alguien mas lo pruebe, con diferentes campos de la estructura, para ver si estoy o no equivocado.

me gustaria que TolaWare(o cualquiera que este dispuesto)lo comprueve para salir de este dilema. claro si es que quiere hacerlo:

el programa con el algoritmo de Instru es este:
(quien quiera probarlo y poner sus obserbaciones:)

Código:
#include <stdio.h>

struct Ficha {
	char * Nombre;
	unsigned int Edad;
	char * Pais;
	char * Ciudad;
	char * Calle;
	unsigned char Piso;
	unsigned char Letra;
};


#define devuelve_estructura(puntero_miembro,nombre_estructura,nombre_miembro) \
	(nombre_estructura *)(puntero_miembro-(long)(&((nombre_estructura *)0)->nombre_miembro));


int main()
{
	struct Ficha miFicha;
	struct Ficha * nuevaFicha;

	nuevaFicha = devuelve_estructura(&miFicha.Edad, struct Ficha, Edad);
	// nuevaficha = devuelve_estructura(&miFicha.Piso,struct Ficha, Piso);
	// nuevaficha = devuelve_estructura(&miFicha.Calle,struct Ficha, Calle);
	// ...
	printf("Ficha original = 0x%X\nFicha devuelta = 0x%X\n",&miFicha, nuevaFicha);

	if(&miFicha==nuevaFicha) printf("Correcto, son iguales.\n");
	else printf("Incorrecto, son diferentes.\n");

	return 0;
}
Podria ser la diferencia de compilador pero, lo dudo, segun mis obserbaciones este algoritmo funciona solo con el 1ero, y los 2 ultimos campos de la estructura Ficha, con los campos como Edad, no funciona.

Saludos.

Última edición por Nivel7; 25/09/2006 a las 18:06