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

Array de estructura,typedef y punteros.

Estas en el tema de Array de estructura,typedef y punteros. en el foro de C/C++ en Foros del Web. Hola a todos. Estoy programando una agenda, para aprender estructuras, al programa le falta todo pero no quiero continuar sin antes aprender las dos cosas ...
  #1 (permalink)  
Antiguo 08/02/2015, 06:09
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Array de estructura,typedef y punteros.

Hola a todos.
Estoy programando una agenda, para aprender estructuras, al programa le falta todo pero no quiero continuar sin antes aprender las dos cosas que me faltan.-
La primera como puedo insertar typedef y la otra, como hago para declarar la estructura para que se le pueda ingresar de o a 10 contactos (unaAgenda [10]).-

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. struct agenda{
  4.     int orden, celular;
  5.     char nombre[30], apellido[30], calle[30], ciudad[30], correo[50];
  6. };
  7.  
  8. int main(void){
  9.     struct agenda unaAgenda;
  10.     struct agenda *ptrAgenda;
  11.     ptrAgenda = &unaAgenda;
  12.    
  13.     (*ptrAgenda).orden = 1;
  14.  
  15.     printf("\n\n %d", (*ptrAgenda).orden);
  16.    
  17.     getchar();
  18.     return 0;
  19. }

Desde ya gracias por el tiempo que le dediquen a mi post.-

Un abrazo.
Daniel.
  #2 (permalink)  
Antiguo 08/02/2015, 07:01
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Array de estructura,typedef y punteros.

¿Has tratado de buscar en google? Hay mucha información y ejemplos de typedef. Ya solo seria cuestión que los probaras.

http://es.wikipedia.org/wiki/Typedef#Ejemplo_con_struct
http://en.wikipedia.org/wiki/Struct_...29#Declaration

Lo segundo, es solamente declarar un simple arreglo de estructuras.
Código C:
Ver original
  1. struct agenda agendas[n];
  #3 (permalink)  
Antiguo 08/02/2015, 07:31
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Array de estructura,typedef y punteros.

Hola razpeitia.
Gracias por ocuparte, en cuanto a typedef lo voy a dejar por el momento, no debe ser cosa de otro mundo aplicarlo a mi programa, en cuanto a consultar en internet no tenes una idea todo lo que practico antes de consultarlos.-
Bueno expongo nuevamente mi código, está logrado el array de estructuras, sólo que no me da error para acceder a cada uno de los elementos, lo que me ocurre es que todo el mundo accede con -> y en mi manual está de la manera que yo lo expuse, me gusta más-

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. struct agenda{
  4.     int orden, celular;
  5.     char nombre[30], apellido[30], calle[30], ciudad[30], correo[50];
  6. }contacto[10];
  7.  
  8. int main(void){
  9.     struct agenda *ptrContacto;
  10.     ptrContacto = &contacto[0];
  11.    
  12.     (*ptrContacto+3).orden = 3;
  13.  
  14.     //printf("\n\n %d", (*ptrContacto).orden);
  15.    
  16.     getchar();
  17.     return 0;
  18. }

Cita:
C:\ProgramasNotepad\Pruebas.c: In function 'main':
C:\ProgramasNotepad\Pruebas.c:12:15: error: invalid operands to binary + (have 'struct agenda' and 'int')
(*ptrContacto+3).orden = 3;
Espero puedas ayudarme.-

Un abrazo.
Daniel
  #4 (permalink)  
Antiguo 08/02/2015, 08:06
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Array de estructura,typedef y punteros.

Ese error te da porque tratas de sumar una estructura y un int.

Cuando lo que quieres hacer es:
Código C:
Ver original
  1. *(ptrContacto+3).orden = 3;

Personalmente, veo que estas complicando las cosas. Solo usa la estructura como un arreglo mas.

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. struct agenda {
  4.     int orden, celular;
  5.     char nombre[30], apellido[30], calle[30], ciudad[30], correo[50];
  6. } contactos[10];
  7.  
  8. int main(void){
  9.  
  10.     contactos[3].orden = 3;
  11.  
  12.     printf("\n\n %d", contactos[3].orden);
  13.     return 0;
  14. }
  #5 (permalink)  
Antiguo 08/02/2015, 11:10
rdv316
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Array de estructura,typedef y punteros.

Hola.
Al fin el error era por utilizar de forma incorrecta la aritmética de punteros.-
Código C:
Ver original
  1. (*(ptrContacto+3)).orden = 1;
  2. .........
  3. .........
  4. printf("\n\n %d", (*(ptrContacto+3)).orden);

Con esta sintaxis funciona correctamente.-

Un abrazo.
Daniel

Etiquetas: char, estructuras, int, programa
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:15.