elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con Punteros en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Punteros en C  (Leído 3,729 veces)
aaronas

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema con Punteros en C
« en: 31 Marzo 2012, 18:13 pm »

Hola a tod@s, me gustaría que me ayudasen con un problema que tengo al hacer un programa usando punteros en C. El programa es el siguiente:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct point
  4. {
  5.  float x,y;
  6.            };
  7.  /* Function */
  8.  
  9.  void function(struct point *Tk, struct point Tz, float fi)
  10.  {
  11.  Tk-> x=Tz.x*cos(fi)-Tz.y*sin(fi);
  12.  Tk-> x=Tz.x*sin(fi)-Tz.y*cos(fi);
  13.       }
  14.  /* Call */
  15.  
  16.  function(&Tk,Tz,fi);
  17.  
  18.  system("PAUSE");
  19. }

Este programa me da error en la línea de: [ function(&Tk,Tz,fi);];
me pone:

- Conflicting types for 'function'
- Syntax error before '&' token

Si me podeis ayudar, os lo agradecería muchísimo.

Gracias de antemano.


« Última modificación: 31 Marzo 2012, 21:34 pm por Eternal Idol » En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #1 en: 31 Marzo 2012, 21:03 pm »

Antes que nada, utiliza las etiquetas GeSHi para postear código.

Sobre tu problema, es porque le estás pasando un puntero doble al invocar la función.
Tu variable "Tk" es del tipo (struct point*), por ende, ya es del tipo especificado en la función. No debes colocar el ampersand "&" cuando llamas a la función.
Simplemente:

Código
  1. function(Tk,Tz,fi);


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #2 en: 31 Marzo 2012, 21:05 pm »

Hola! q raro yo no veo ningun error, podrias subir el codigo completo o la parte q declaras a Tz y Tk

Saludos
« Última modificación: 31 Marzo 2012, 21:07 pm por durasno » En línea

Ahorrate una pregunta, lee el man
aaronas

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #3 en: 31 Marzo 2012, 21:32 pm »

Se me paso Ferno, gracias.

Con respecto a quitar el ampersand '&', aunque lo quite sigue el mismo error, y además me pone:

- [WARNING] parameter names [without types] in function declaration.

Respondiendo tu pregunta durasno, el código está completo.

Muchas gracias por responder.
En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #4 en: 31 Marzo 2012, 21:36 pm »

¿Es el code completo?
¿Y el main?

Todo programa en C debe comenzar y terminar en la función main!

Código
  1. int main (int argc, char* argv[])
  2. {
  3. /*Código de tu programa*/
  4. }

La llamada a tu función "function" debe darse dentro del main!
(La declaración del struct (tipos) y la implementación de la función no).

EDIT: Agrego, las variables que vayas a utilizar en la llamada a la función también debes declararlas en algún lado, y en este caso, debe ser en el main.
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #5 en: 31 Marzo 2012, 21:39 pm »

Yo solo veo esto y no me parece todo el codigo

#include <stdio.h>
#include <stdlib.h>
struct point
{
  float x,y;
            };
  /* Function */
 
  void function(struct point *Tk, struct point Tz, float fi)
  {
  Tk-> x=Tz.x*cos(fi)-Tz.y*sin(fi);
  Tk-> x=Tz.x*sin(fi)-Tz.y*cos(fi);
       }
  /* Call */
 
  function(&Tk,Tz,fi);
 
  system("PAUSE");   
}
En línea

Ahorrate una pregunta, lee el man
aaronas

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #6 en: 31 Marzo 2012, 21:56 pm »

Gracias durasno por responder,

El problema es que acabo de empezar con punteros, y ese es el código completo que nos dejó el profesor para que lo escribiésemos en el programa. Y no tengo ni idea. Es mi primera clase. Si puedieses decirme como sería la forma correcta, te lo agradecería.

Muchas gracias.
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Problema con Punteros en C
« Respuesta #7 en: 31 Marzo 2012, 23:17 pm »

Ah ok! ahora ya entendi :)... Completando mas o menos seria asi:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct point
  4. {
  5.  float x,y;
  6.   };
  7.  /* Function */
  8.  
  9.  void function(struct point *Tk, struct point Tz, float fi)
  10.  {
  11.  Tk-> x=Tz.x*cos(fi)-Tz.y*sin(fi);
  12.  Tk-> y=Tz.x*sin(fi)-Tz.y*cos(fi);
  13.   }
  14.  
  15. int main()
  16. {
  17.  struct point Tk;
  18.  struct point Tz;
  19.  float fi;
  20. /*-----------------
  21. aca pedis los datos para Tz
  22. ........................*/
  23.  
  24.  function(&Tk,Tz,fi);/* call */
  25.  
  26.  system("PAUSE");  
  27.  return 0;
  28. }
En línea

Ahorrate una pregunta, lee el man
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: Problema con Punteros en C
« Respuesta #8 en: 2 Abril 2012, 00:12 am »

en lugar de system + "pause" podés usar

Código:
printf("Presione ENTER para continuar..\n");
while (getchar() != '\n');


así no usás system


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con punteros.
Programación C/C++
vazquinhos 4 2,503 Último mensaje 20 Septiembre 2012, 18:35 pm
por do-while
Problema con punteros
Programación C/C++
NEGRO_PABLO 3 2,650 Último mensaje 30 Noviembre 2012, 18:41 pm
por twins
Problema con iterador a lista de punteros
Programación C/C++
SrCooper 4 2,861 Último mensaje 24 Julio 2013, 15:43 pm
por Eternal Idol
problema con doble punteros
Programación C/C++
m@o_614 5 2,080 Último mensaje 30 Enero 2014, 18:20 pm
por rir3760
Problema con la notación de punteros
Programación C/C++
apoeti 5 2,622 Último mensaje 11 Julio 2014, 00:32 am
por apoeti
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines