我不是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);
代码如下,但并不重要,因为我正在测试它,错误在:
evento evt;
strcpy(evt.tipo, "evento");
strcpy(evt.tema, tema);
strcpy(evt.valor, valor);
我需要将generar_evento
的参数(const char *tema, const char *valor
)复制到struct evento
中,但当我尝试这样做时,会出现错误。
谢谢!
答案 0 :(得分:0)
char* tipo;
char* tema;
char* valor;
那些char *需要记忆。
给他们一些malloc(strlen("the string you want to cpy") + 1);
当你不再需要它们时,别忘了free()
。