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

Duda structs

Estas en el tema de Duda structs en el foro de C/C++ en Foros del Web. Tengo cierta duda con los structs, haber si yo tengo varias funciones, y en una introduzco la información de los atributos del struct (nombre, edad...) ...
  #1 (permalink)  
Antiguo 16/09/2011, 13:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Duda structs

Tengo cierta duda con los structs, haber si yo tengo varias funciones, y en una introduzco la información de los atributos del struct (nombre, edad...) y en la otra función lo que haría es consultarlo en teoría ( todo lo k he introducido), si no lo hago por punteros no debería poder ver los datos que he introducido en la otra función o si?

Nose si me explicado bien, haber si alguien me ayuda, gracias.
  #2 (permalink)  
Antiguo 16/09/2011, 16:30
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Duda structs

Algo te explicas, pero la mejor forma de mostrar esto es mostrando algo de codigo que tenes.

Mientras te explico, si no pasas un puntero a la estructura nunca la podras modificar....pero puedes pasar la estructura por valor y asi si puedes ver los datos... Ejemplo de prototipos de funciones

void Crear(struct mitipo * m); // esta funcion puede modificar
void Editar(struct mitipo * m); // esta funcion puede modificar
void Imprimir(struct mitipo m); // esta funcion solo puede ver, si la modifica, no seran visibles los cambios

void Ciega(); // esta funcion no tiene ni idea que existe la estructura
  #3 (permalink)  
Antiguo 17/09/2011, 11:47
 
Fecha de Ingreso: junio-2010
Mensajes: 132
Antigüedad: 13 años, 11 meses
Puntos: 3
Pregunta Respuesta: Duda structs

Explicate mejor no te entiendo
  #4 (permalink)  
Antiguo 19/09/2011, 10:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Duda structs

No esta acabado el programa pero me refería a esto, cuando introduzco cosas luego las puedo ver con la opcion 2, pero son funciones diferentes, como es k puedo ver lo que he añadido en la función opcion1?


#include <stdio.h>
#include <stdlib.h>


struct empleado{

char Nombre[15];
char apellido[20];

};

int menu(){
int opcion;
printf("MENU\n");
printf("1. Introducir datos\n");
printf("2. Mostrar los datos \n");
printf("5. Salir.\n");
scanf("%d", &opcion);
return(opcion);

}
int opcion1(empleado emple[],int n){



printf("Nombre del empleado\n");
scanf("%s", &emple[n].Nombre);
printf("Apellido del empleado\n");
scanf("%s", &emple[n].apellido);

n++;
return(n);
}
void opcion2(empleado emple[],int n){

int i;


printf("Nombre: %s\n",emple[i].Nombre);
printf("Apellido: %s\n",emple[i].apellido);




}

void main (){

int opcion,n=0;
struct alumno alumn[50];

do{

opcion=menu();
switch(opcion)
{
case 1:
n=opcion1(alumn,n);
break;
case 2:
opcion2(alumn,n);

break;

defalut:
printf("Ha cerrado el programa correctamente\n");
break;
}
}while(opcion!=2);
}

Gracias, y siento no expresarme bien antes.
Al no hacerlo por apuntadores ni return ni nada no debería poder ver los datos, no? o si?
  #5 (permalink)  
Antiguo 19/09/2011, 20:20
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Duda structs

Para empezar si estas usando punteros...sino no funcionaria.
Tener esta definicion empleado emple[] es casi lo mismo que tener esta:
empleado * empleado;

Asi que con eso si estas usando punteros. Es por eso que podes ver lo que agregas en una funcion en otra.

Etiquetas: funcion, struct
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 14:02.