Título: Infracción de acceso al leer la ubicación... Publicado por: digimikeh en 4 Marzo 2019, 19:42 pm Buenas.
Estoy intentando guardar y leer de/a un archivo en forma binaria, no tengo problemas guardando, el problema va leyendo el archivo: Código
Pareciera que no se está escribiendo la información en la memoria que le corresponde a la variable "uc". Que podrá ser=? gracias. Título: Re: Infracción de acceso al leer la ubicación... Publicado por: Loretz en 4 Marzo 2019, 20:21 pm Hola; ¿por qué no pones un ejemplo completo pero mínimo que se pueda compilar? Así creo que va a ser más fácil.
Título: Re: Infracción de acceso al leer la ubicación... Publicado por: ivancea96 en 4 Marzo 2019, 20:31 pm Buenas. Estoy intentando guardar y leer de/a un archivo en forma binaria, no tengo problemas guardando, el problema va leyendo el archivo: Código
Pareciera que no se está escribiendo la información en la memoria que le corresponde a la variable "uc". Que podrá ser=? gracias. Si bien se puede leer directamente en una estructura en C++ igual que en C, hay que tener cuidado de no tener campos que sean clases dentro, y que no haya punteros tampoco. ¿Qué tiene "UnaClase"? Si tuviera por ejemplo una string, podría ser un problema. Título: Re: Infracción de acceso al leer la ubicación... Publicado por: digimikeh en 4 Marzo 2019, 22:52 pm Ya entiendo!, el ejemplo que puse aquí funciona, pensé que el problema estaba en la forma en que llamaba al archivo binario lectura y escritura, y en realidad el problema estaba en que dentro de UnaClase, tengo una variable tipo char * nombre, que me estaba dando el problema, es decir, para lectura y escritura binaria me tengo que olvidar de usar punteros.... es asi? .,.. simplemente reemplace :
Código
por Código
y funciono... curioso.. pero por que sucede esto?, acaso el compilador se confunde cuando copio memoria de un puntero? En otras palabras, si deseo copiar información en forma binaria a un archivo y leerlo también en forma binaria, la fuente no puede ser memoria dinámica. Gracias a ambos por las respuestas Título: Re: Infracción de acceso al leer la ubicación... Publicado por: Loretz en 4 Marzo 2019, 23:55 pm Citar curioso.. pero por que sucede esto?, acaso el compilador se confunde cuando copio memoria de un puntero? No, el compilador hace lo que le dices.Código: char * nombre; Código: char nombre[16]; No es lo mismo guardar en un archivo una dirección de memoria que guardar una sucesión de caracteres. En el primer caso podrías estar guardando algo como 2127788540 y en el segundo algo como castellanamente. Título: Re: Infracción de acceso al leer la ubicación... Publicado por: digimikeh en 5 Marzo 2019, 01:05 am Ok, pero el primer caso me daba error, no podía si quiera mostrar la dirección de memoria..
Título: Re: Infracción de acceso al leer la ubicación... Publicado por: ivancea96 en 5 Marzo 2019, 12:32 pm Ok, pero el primer caso me daba error, no podía si quiera mostrar la dirección de memoria.. Pongamos un caso. Desde un programa escribes esa estrucutra y se escribe la direccion del char*. Desde otro programa, lees esa dirección en la estructura. Esa dirección casi seguro que no pertenece a tu programa, es una dirección de memoria a la que tu programa no tiene acceso. Intentar leerla, en muchos casos, dará un error. |