0

我有这个 C 函数。

void execMessage(int sockfd,void *structCHARMS, ClientData *client)
{
    ClientData *client_recv = (ClientData *) structCHARMS;

    client->local_addr=client_recv->local_addr;
    client->mode = client_recv->mode;

    char*msg;   
    CharmsMsg chmsg = {charms_msg_map[XTypes_CONFIG_PARAM].msg_code, client, 1184};
    msg = encode(&chmsg, "0.01");
    ssize_t n = 0;
    n = send(sockfd,msg,strlen(msg), 0);

}

它是从连接到 TCP 客户端的经典 TCP Server 的 main 函数调用的。它创建一条消息(具有特定的函数编码)并将其发送到服务器。

问题是:当将此函数插入​​到同一文件中时main(),它可以正常工作,但是当我将其插入另一个文件时,程序运行时出现“分段错误错误”。

谁能帮我?谢谢

4

1 回答 1

0

如前所述,您需要弄清楚程序在哪里发生了段错误。现在您创建一个本地 char* 并将指针的地址传递给编码函数。你有该功能的代码吗?在我看来,您希望从函数返回一个指针,并在其中返回堆您编码的 c 字符串。发送后,您需要释放该内存,以免发生泄漏。

于 2013-09-18T17:56:55.120 回答