Autor
|
Tema: Punteros! (Leído 1,639 veces)
|
LucasNahuel
Desconectado
Mensajes: 9
|
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 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
Mensajes: 222
|
Mira te dejo este codigo corregido para que le des una mirada: #include<stdio.h> #include<string.h> 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: "); 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"); printf("ID: %d\t IP: %s",pEmployee [indice ]. id,pEmployee [indice ]. ip); //y ya me sale error.. return 0; }
En realidad no estas usando punteros, esta forma seria usando arreglos dinamicos o "punteros" int main() { Employee *pEmployee =malloc(sizeof(Employee )*10); int indice; printf("Ingrese el indice donde quiere guardar los datos: "); 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"); printf("ID: %d\t IP: %s",pEmployee [indice ]. id,pEmployee [indice ]. ip); //y ya me sale error.. free(pEmployee ); //liberamos la memoria return 0; }
|
|
« Ú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.
|
|
|
|
crack81
Desconectado
Mensajes: 222
|
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 (pEmployee+indice)->id=800; printf("indice %d",(pEmployee +indice )->id );
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
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
|
Estas asignando un char* const a un char*, es igual que hacer esto int a[10]; int b[10]; //llenamos a 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
Mensajes: 219
HardForo.com
|
Muy amable Alex lex Aun hay (muchas) cosas que se me escapan
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
|
|