Cita:
Iniciado por arm Buena ya que se ban a tomar un receso, quisiera que me ayudaran a entenender esta expresion que usaron en el anterior probla:
(nombre_estructura *)0
Yo entente solucionarlo, pero como es de esperar no llege a la solucion y ninguna se parecia, ademas, no tenia ni idea de que se podia hacer eso.
Es decir, tengo entendido que (instacia*) 0 señala a una psocion de merio no peromiticada, pero (nombre_estructura *)0 que significa.
De hecho, no es permitida. Pero date cuenta que tiene el &
&(((T*)0)->miembro)
Es decir, se convierte a una dirección, NO se accede a esa memoria, a pesar del "->". Y tal dirección, representa el offset del miembro, dado que si el offset de la estructura es 0, cada miembro en memoria será igual a su offset.
Y ese offset le usamos para saber cuantos bytes hay desde el miembro hasta la estructura que lo contiene, de tal manera que restamos eso a la posicion original del miembro.
posicion_real_de_miembro - offset_de_miembro_en_0 = posicion_real_de_estructura_contenedora
La magia, está hecha ;)