Foros del Web » Programación para mayores de 30 ;) » C/C++ »

2 preguntas

Estas en el tema de 2 preguntas en el foro de C/C++ en Foros del Web. 1. Cuando tu abres en fichero para entrada y salida ("r+"), despues de leer del fichero, por ej, haciendo un "fscanf(FILE *f....) ", tienes que ...
  #1 (permalink)  
Antiguo 09/02/2007, 19:01
 
Fecha de Ingreso: julio-2006
Mensajes: 99
Antigüedad: 17 años, 9 meses
Puntos: 0
2 preguntas

1. Cuando tu abres en fichero para entrada y salida ("r+"), despues de leer del fichero, por ej, haciendo un "fscanf(FILE *f....) ", tienes que utilizar la funcion fflush, antes de escribir en el mismo fichero, por ej, haciendo un "fprintf(FILE *f...) ???

2.
Siendo T1,T2 y T3 estructuras, y una siendo reg3 una variable de tipo T3,reg 2 una variable de tipo T2 dentro de T3, y T1 un puntero a la estructura T1 que esta dentro de T2, y siendo pa un puntero a su vez,

porque esta sentencia es incorrecta "reg3.reg2.reg1-->(*pa)" y esta otra no
" *(reg3.reg2.reg1-->pa)" ??
Yo lo entiendo al reves, porque,a partir del 3, se accede al 2, que contiene el puntero (*reg1) a la estructura T1, y dentro de esa estructura, pues el puntero "reg1" quiere apuntar a "pa", pero, como a su vez es un puntero, desreferencia "pa" (*pa) , "...reg1-->(*pa)". Por que esta mal? Estaría bien, "reg1-->pa". Entonces no se podria desrreferenciar, o si??
La segunda forma, esta bien, pero por que? Que clase de sentencia es esa, un conversión de tipo puntero, o que??

SAludos.
  #2 (permalink)  
Antiguo 23/03/2007, 04:37
 
Fecha de Ingreso: junio-2003
Ubicación: Bilbao
Mensajes: 90
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: 2 preguntas

Digamos que el * simplemente referencia a los datos a los que apunta un puntero. En tu caso, al puntero se accede con toda esa ruta: reg3.reg2.reg1->pa. Esa es la ruta, ahora, si quieres acceder a los datos a los que apunta ese puntero, pones * simplemente. Pero a todo, porque necesitas toda la ruta para saber la dirección de memoria a la que apunta pa. Espero que sea de ayuda.
__________________
Code
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:30.