Hola,
Tengo la siguiente estructura declarada en C:
Código C:
Ver originaltypedef struct
{
char *nombre;
char *apellido;
int edad;
} persona;
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 originalint setEmpleadoValue(char *nombre, string &cadena)
{
nombre
=(char*)malloc(cadena.
size()); strcpy(nombre
,cadena.
c_str()); return 0;
}
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 originalint rellenarEmpleado ()
{
string text;
obtenerTexto(text); //esta función asigna a texto el nombre del empleado en función de otros parametros
setEmpleadoValue(persona[i].nombre,text);
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