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

IMPORTANTE; cambiar el tipo de punteros

Estas en el tema de IMPORTANTE; cambiar el tipo de punteros en el foro de C/C++ en Foros del Web. Hola tengo un gran problema, tengo que entregar un trabajo la semana que viene y aun tengo muchos warnings. Uno de ellos es este: funcion_nueva.c:63: ...
  #1 (permalink)  
Antiguo 14/06/2012, 02:17
 
Fecha de Ingreso: junio-2012
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta IMPORTANTE; cambiar el tipo de punteros

Hola tengo un gran problema, tengo que entregar un trabajo la semana que viene y aun tengo muchos warnings. Uno de ellos es este:

funcion_nueva.c:63: warning: cast from pointer to integer of different size
funcion_nueva.c:63: warning: assignment makes pointer from integer without a cast

y este es mi codigo:
pf= (char) (&plectura);

pf es un puntero de tipo FILE
y plectura es de tipo char,

Quiero igualar la direccion de pf a la direccion de plectura, he estado leyendo y he encontrado lo de el cast pero en la pagina pone que esa es la sintaxis sin embargo me da ese warning

¿como puedo hacerlo?
  #2 (permalink)  
Antiguo 14/06/2012, 06:33
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: IMPORTANTE; cambiar el tipo de punteros

Tal como lo has puesto, lo que estás haciendo es un cast de un puntero (&plectura, 32 bits) a un char (8 bits). Este es el motivo del primer error.

El segundo error se debe a que estás asignando a un puntero (32 bits) el valor de un entero (32 bits, debido a que te ha "promocionado" el tipo char que has puesto en el cast).

Te estoy indicando error porque, aunque el compilador te lo marque como warning (que significa "me lo trago, pero..."), al tratarse de punteros te vas a encontrar con que el programa casca.

La manera de hacerlo es esta:

pf = (FILE *)plectura

Estoy suponiendo que el tipo de plectura es puntero a caracter (por lo del prefijo p), por eso no lo he precedido con &. Si plectura fuese de tipo caracter (no puntero a caracter), sí que sería pf = (FILE *)&plectura (aunque en ese caso no sé para qué querrías asignar a una estructura FILE un caracter simple).
  #3 (permalink)  
Antiguo 14/06/2012, 09:17
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: IMPORTANTE; cambiar el tipo de punteros

Si vas a apuntar a diferentes tipos de punteros, tal vez te convendria usar un puntero void:
Código C:
Ver original
  1. void *


Saludos

Etiquetas: c++, punteros
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 19:51.