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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


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

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Punteros!
« en: 20 Mayo 2016, 21:03 pm »

Hola a todos, estoy comenzando con punteros y tengo una duda, quiero pegarle un valor a un array, y luego mostrarlo. algo simple. disculpen mi pregunta tonta.. pero no me sale!
El programa

Citar

typedef struct
{
    int id;
    char name[50];
    char lastName[50];
    char email[50];
    char gender[50];
    char ip[50];

}Employee;

int main()
{
        Employee pEmployee[10];
        int indice;

        printf("Ingrese el indice donde quiere guardar los datos");
        scanf("%d",& indice);
      
        (pEmployee+indice)->id=800;
        strcpy((pEmployee+indice)->name,"name"); //creo que un error lo tengo aca, como lo estoy guardando
        strcpy((pEmployee+indice)->lastName,"lastName");
        strcpy((pEmployee+indice)->email,"email");
        strcpy((pEmployee+indice)->gender,"gender");
        strcpy((pEmployee+indice)->ip,"ip");

        ACA esta el problema, no tengo idea como mostrarlo con un printf porque por ejemplo coloco esto, aunque puede ser que el error solo sea el mencionado arriba, de como guardo los datos.

      printf("ID: %d\t NAME: %s",pEmployee[indice]->id,pEmployee[indice]->name); y ya me sale error..
}


« Última modificación: 20 Mayo 2016, 21:17 pm por LucasNahuel » En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Punteros!
« Respuesta #1 en: 20 Mayo 2016, 21:31 pm »

Mira te dejo este codigo corregido para que le des una mirada:

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. typedef struct
  5. {
  6.    int id;
  7.    char name[50];
  8.    char lastName[50];
  9.    char email[50];
  10.    char gender[50];
  11.    char ip[50];
  12.  
  13. }Employee;
  14.  
  15. int main()
  16. {
  17.        Employee pEmployee[10];
  18.        int indice;
  19.  
  20.        printf("Ingrese el indice donde quiere guardar los datos: ");
  21.        scanf("%d",&indice);
  22.  
  23.  
  24.        pEmployee[indice].id=800;
  25.        strcpy(pEmployee[indice].name,"name"); //creo que un error lo tengo aca, como lo estoy guardando
  26.        strcpy(pEmployee[indice].lastName,"lastName");
  27.        strcpy(pEmployee[indice].email,"email");
  28.        strcpy(pEmployee[indice].gender,"gender");
  29.        strcpy(pEmployee[indice].ip,"ip");
  30.  
  31.        printf("ID: %d\t IP: %s",pEmployee[indice].id,pEmployee[indice].ip); //y ya me sale error..
  32.        return 0;
  33. }

En realidad no estas usando punteros, esta forma seria usando arreglos dinamicos o "punteros"

Código
  1. int main()
  2. {
  3.        Employee *pEmployee=malloc(sizeof(Employee)*10);
  4.        int indice;
  5.  
  6.        printf("Ingrese el indice donde quiere guardar los datos: ");
  7.        scanf("%d",&indice);
  8.  
  9.  
  10.        pEmployee[indice].id=800;
  11.        strcpy(pEmployee[indice].name,"name"); //creo que un error lo tengo aca, como lo estoy guardando
  12.        strcpy(pEmployee[indice].lastName,"lastName");
  13.        strcpy(pEmployee[indice].email,"email");
  14.        strcpy(pEmployee[indice].gender,"gender");
  15.        strcpy(pEmployee[indice].ip,"ip");
  16.  
  17.        printf("ID: %d\t IP: %s",pEmployee[indice].id,pEmployee[indice].ip); //y ya me sale error..
  18.  
  19.        free(pEmployee); //liberamos la memoria
  20.        return 0;
  21. }


« Última modificación: 20 Mayo 2016, 21:43 pm por crack81 » En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
LucasNahuel

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Punteros!
« Respuesta #2 en: 20 Mayo 2016, 21:35 pm »

si, es que en la facultad me enseñaron a hacer como vos lo hiciste, pero ahora quiere que utilize punteros, y utilize el operador flecha no el punto.. pero bueno, por lo que veo no vengo bien en la facultad jaja :(
En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Punteros!
« Respuesta #3 en: 20 Mayo 2016, 21:40 pm »

Hola la verdad es que si puedes usar el -> pero es una chorrada cuando hablamos de arreglos ya que con acceder al arreglo en forma de indice basta

Pero si quieres que tu codigo original funcione basta con que imprimas los valores asi

Código
  1. (pEmployee+indice)->id=800;
  2. printf("indice %d",(pEmployee+indice)->id);
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: Punteros!
« Respuesta #4 en: 20 Mayo 2016, 22:03 pm »

Voy a hacer una pregunta muy ingenua: cuál es la necesidad de usar strcpy() en este programa ?
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Punteros!
« Respuesta #5 en: 20 Mayo 2016, 22:25 pm »

Estas asignando un char* const a un char*, es igual que hacer esto
Código
  1. int a[10];
  2. int b[10];
  3. //llenamos a
  4. b=a;
b
Esto no hará nada esperado XD

Tienes que copiar la memoria de las posiciones del array
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: Punteros!
« Respuesta #6 en: 21 Mayo 2016, 01:42 am »

Muy amable Alex lex  ;D

Aun hay (muchas) cosas que se me escapan
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
punteros
Programación Visual Basic
bautistasbr 4 2,051 Último mensaje 30 Septiembre 2005, 19:35 pm
por NYlOn
Duda Punteros Dobles/Array de punteros
Programación C/C++
MisterJava 2 4,860 Último mensaje 30 Diciembre 2012, 20:19 pm
por MisterJava
Punteros dobles / Punteros a puntero.
Programación C/C++
NOB2014 5 7,874 Último mensaje 13 Abril 2016, 16:00 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines