Título: [duda] Struc en C/C++, direcciones en memoria Publicado por: CSQCasimiro en 31 Agosto 2012, 21:09 pm hola a todos, como andan ? , veran, estoy optimizando un codigo mio con funciones super genericas (que sean capases de resivir cualquier tipo de estruc y recorrer cada uno de sus campos) , el tema es que realizandolo me surgio una duda, sobre como son asignados los espacios en memoria de una estructura, por ejemplo la siguiente:
Código
yo se que si le doy un sizeof (dato) , me dará 8 ( cada dato int ocupa 4 byte), mi pregunta es esta, supongamos que la estructura empieza en la direccion de memora 0x0001 , esa dirección de inicio, también corresponde a la de inicio de int ID ? y si le sumo 4 byte mas, osea, 0x0005 , esa seria la dirección de memoria de int lock ? desde ya muchas gracias. Título: Re: [duda] Struc en C/C++, direcciones en memoria Publicado por: avesudra en 31 Agosto 2012, 21:22 pm Hola CSQCasimiro pues mira no lo sabía pero tampoco está de más compilar este código que hecho y comprobarlo , y sí , es tal y como dices.Una cosita cuida la ortografía :o reCiBir , capaCes.
Código Mi salida es esta: Código: Direccion de la Estructura 28FF18 Primer byte: 28FF1C Segundo byte: 28FF1D Tercer byte: 28FF1E Cuarto byte: 28FF1F ¡Un saludo! Título: Re: [duda] Struc en C/C++, direcciones en memoria Publicado por: CSQCasimiro en 31 Agosto 2012, 21:34 pm genial, muchas gracias, me sacaste la duda :D
después mas tarde subiré acá la función en la que lo aplique como método practico por si alguien en algún futuro necesita un ejemplo de uso =P huy que mal no note esas faltas de ortografía O_o PD: viva la aritmética de punteros Título: Re: [duda] Struc en C/C++, direcciones en memoria Publicado por: avesudra en 31 Agosto 2012, 21:39 pm genial, muchas gracias, me sacaste la duda :D De nada , la que acabo de liar modificando el post dios :xD , ten en cuenta que siempre es así , pero que también puedes declarar otros punteros en la estructura e inicializarlos como malloc o calloc, que lo que haría sería apuntar a otra zona de memoria pero el puntero estaría en esa estructura pero eso mismo , el Puntero(dirección de memoria) , no el dato, digo esto porque a lo mejor quieres acceder a un dato y al hacer esa optimización tuya accedes a un puntero. Lo mismo digo , antes no entendía porque la arítmetica de punteros era tan fascinante , pero ya sí.huy que mal no note esas faltas de ortografía O_o PD: viva la aritmética de punteros Título: Re: [duda] Struc en C/C++, direcciones en memoria Publicado por: CSQCasimiro en 6 Septiembre 2012, 22:26 pm no me gusta revivir temas tan viejos, pero lo prometido es deuda...
es una función que busca en un archivo de struc de cualquier dimensión un dato int, y vos solo le pasas la ruta del archivo, a partir de cuantos byte empieza ese dato en la estructura, cuanto mide (es redundante por que es siempre 4, error mio) y la cantidad de registros que posee (para eso ya tengo otra función que mostrare mas abajo) Código
y la de cantidad de registros Código
y ahora por que yo decía que eso era algo muy general ? por que en la facultad me mandaron un trabajo con 5 estructuras diferentes (y por ende archivos diferentes) y que en todas había que hacerle cosas similares y yo de vago cree esas funciones para cualquiera que sea la estructura. |