如何解决;分段故障“;C中的错误

如何解决;分段故障“;C中的错误,c,C,我不是C方面的专家,事实上,我讨厌它,但我必须为我的大学用这种语言做这个项目。嗯,当我去测试我的代码时,我对这个错误感到惊讶,“分段错误”。我在寻找互联网和阅读有同样问题的人,但我无法解决它 这是我的代码: typedef struct evento{ char* tipo; //baja, alta o evento char* tema; //tema al que pertenece char* valor; int puerto; struct s

我不是C方面的专家,事实上,我讨厌它,但我必须为我的大学用这种语言做这个项目。嗯,当我去测试我的代码时,我对这个错误感到惊讶,“分段错误”。我在寻找互联网和阅读有同样问题的人,但我无法解决它

这是我的代码:

typedef struct evento{
    char* tipo; //baja, alta o evento
    char* tema; //tema al que pertenece
    char* valor;
    int puerto;
    struct sockaddr_in *dir;
}evento;

int generar_evento(const char *tema, const char *valor) {

//Socket()

int sock;

sock = socket(AF_INET, SOCK_STREAM, 0);

if (sock < 0){
perror("Error en socket() en Editor");
exit(1);
}

//Preparar mensaje

evento evt;
strcpy(evt.tipo, "evento");
strcpy(evt.tema, tema);
strcpy(evt.valor, valor);
我需要将
generar\u evento
的参数(
const char*tema,const char*valor
)复制到
struct evento
中,但当我尝试这样做时,出现了错误

谢谢

char* tipo; 
char* tema;
char* valor;
那些字符需要内存

用malloc(strlen(“你想要的字符串”)+1)给他们一些

当你不再需要它们时,别忘了
free()
它们。

evt.tema=strdup(tema)
char* tipo; 
char* tema;
char* valor;