La otra duda

Tengo la siguiente estructura:
typedef struct
{
/*! Datum's name */
char* name;
..
..
/*! Datum's pointer */
void* ptr;
..
} DSC_DataInfo_struct;
Basicamente el funcionamiento es, para un receptor... poniendo en name el nombre de un parametro contenido en los mensajes recibidos, hay un comando Find, y si el parametro se encuentra definido, carga la estructura con todos sus parametros, y el puntero apunta al ultimo valor actualizado.
Entonces, lo que yo tengo es una funcion:
int Get/SetParametro(const char* nombre, void* parametro){
DSC_DataInfo_struct estructura;
strcpy(estructura.name, nombre);
estado = Find(&estructura);
if (estado == 0){
size = CalculaSizeParametro(estructura.ptr);
memcpy(estructura.ptr, parametro, size);
return 0;
}else return 1;
Entonces haciendo la llamada "SetParametro("nombreparametro",¶metro)" me deberia poner en parametro el valor actualizado.
Para ponerte en situacion, antes tenia esta funcion mal definida, pasandole el parametro "nombre" como "char*" y no como "const char*". En vez de poner Strcpy, directamente decia "estructura.name = nombre". Me daba warnings en la compilacion, pero funcionaba.
Ahora, como const char* no me da warnings en la compilacion, pero al llamarla, me da un Segmentation Fault en el strcpy....
Y no se solucionarlo.