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

Funciones parametros estructuras

Estas en el tema de Funciones parametros estructuras en el foro de C/C++ en Foros del Web. una pregunta como le harian apra que las dos variables tipo Angulo osea longitud y latitud almacenaran los aprametros de la funcion contruyendo Angulo OVIAMENTE ...
  #1 (permalink)  
Antiguo 21/10/2013, 21:44
 
Fecha de Ingreso: septiembre-2013
Mensajes: 11
Antigüedad: 10 años, 7 meses
Puntos: 0
Funciones parametros estructuras

una pregunta como le harian apra que las dos variables tipo Angulo osea longitud y latitud almacenaran los aprametros de la funcion contruyendo Angulo OVIAMENTE USANDO ESA FUNCION.



Código C:
Ver original
  1. #include <stdio.h>
  2. #include "Angulo.h"
  3. #include "Coordenadas.h"
  4. #include "ColaAviones.h"
  5. int main () {
  6. Angulo longitud, latitud;
  7. Coordenadas destino;
  8. ColaAviones cola;
  9.  
  10.  
  11.  
  12.  
  13.  
  14. longitud = ConstruyeAngulo (20, 20, 5, 'N');
  15. latitud = ConstruyeAngulo (45, 30, 2, 'E');
  16.  
  17.  
  18.  
  19.  
  20. // grados, minutos, segundos, orientacion
  21. destino = ConstruyeCoordenadas(longitud, latitud);
  22. ConstruirColaAvionesVacia(&cola);
  23. InsertarAvion (&cola, "AZ19B2", destino);
  24. InsertarAvion (&cola, "BT3533P8", destino);
  25. ExtraerSiguienteAvion(&cola);
  26. ExtraerSiguienteAvion(&cola);
  27. ExtraerSiguienteAvion(&cola);
  28. LiberarColaAviones(&cola);
  29. return 0;
  30. }

yo use esto pero no me funciona:

Código C:
Ver original
  1. void ConstruyeAngulo (int a,int b,int c,char z, Angulo* posicion){
  2.                  
  3.       posicion->grados = a;
  4.       posicion->minutos = b;
  5.        posicion->segundos = c;
  6.        posicion->orientacion = z;  
  7.                  }
  #2 (permalink)  
Antiguo 22/10/2013, 12:14
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Funciones parametros estructuras

La funcion ConstruyeAngulo no retorna nada, por lo tanto no puedes asignar el retorno

Código C:
Ver original
  1. longitud = ConstruyeAngulo (20, 20, 5, 'N');

Esto no funciona pq no se asigna nada, ademas que el compilador te dirá que esto no vale pq la funcion a la que llamas requiere mas argumentos de los que indicas, y aunque llegara a ejecutarse el puntero 'posicion' de la funcion es nulo y provocarias un error de acceso.

Debes usar un puntero a una estructura Angulo como quino elemento:

Código C:
Ver original
  1. //solucion 1
  2. ConstruyeAngulo(20, 20, 5, 'N', &longitud);

O modificar la funcion para que te retorne una estructura:

Código C:
Ver original
  1. //solucion 2
  2. Angulo ConstruyeAngulo(int a,int b,int c,char z) {
  3.     Angulo posicion;
  4.    
  5.     posicion.grados = a;
  6.     posicion.minutos = b;
  7.     posicion.segundos = c;
  8.     posicion.orientacion = z;
  9.    
  10.     return posicion;
  11. }
  12.  
  13. longitud = ConstruyeAngulo(20, 20, 5, 'N');

Saludos
vosk

Etiquetas: estructuras, funcion, funciones, int, parametros
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 01:25.