Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2015, 06:03
lmmontero
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 8 años, 10 meses
Puntos: 0
Problema con estructuras y punteros en C

Hola,

Tengo la siguiente estructura declarada en C:

Código C:
Ver original
  1. typedef struct             
  2. {
  3.     char *nombre;
  4.     char *apellido;
  5.     int edad;          
  6. } persona;
  7.  
  8. persona empleado;

Tengo también una función que escribe en cada uno de los miembros de la estructura (de tipo char) el valor que se le pasa por parámetro:

Código C:
Ver original
  1. int setEmpleadoValue(char *nombre, string &cadena)
  2. {
  3.     nombre=(char*)malloc(cadena.size());
  4.     strcpy(nombre,cadena.c_str());
  5.     printf("%s\n",nombre);
  6.     return 0;
  7. }

Desde otra función, lo que hago es llamar a la funcion setEmpleadoValue para asignarle el valor correspondiente a cada uno de los miembros de la estructura empleado definida previamente:

Código C:
Ver original
  1. int rellenarEmpleado ()
  2. {
  3.    string text;
  4.    obtenerTexto(text); //esta función asigna a texto el nombre del empleado en función de otros parametros
  5.    setEmpleadoValue(persona[i].nombre,text);
  6.    printf("%s\n", persona[i].nombre);

Al ejecutar el código printf(...) de la función setEmpleadoValue(), el nombre de la persona se imprime sin problemas. Pero al intentar ejecutar el código printf(...) de la función rellenarEmpleado(), me aparece un error en tiempo de ejecución.

Imagino que es algún problema con los punteros, pero no termino de ver cuál..

¿Podéis ayudarme? Espero haberme explicado correctamente.. Gracias de antemano