首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C函数,网络编程

C函数,网络编程
EN

Stack Overflow用户
提问于 2013-09-19 01:23:06
回答 1查看 120关注 0票数 0

我有一个C函数。

代码语言:javascript
复制
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函数中调用的。它创建一条消息(具有特定的函数encode)并将其发送到服务器。

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

有谁可以帮我?谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-09-19 01:56:55

正如前面提到的,您需要找出程序到底在哪里发生了分段错误。现在,您可以创建一个本地char*,并将指针的地址传递给encode函数。你有那个函数的代码吗?在我看来,你似乎想要从函数返回一个指针,并在其中返回堆,你编码的c-string。在你发送之后,你会想要释放那个内存,这样你就不会有泄漏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18878539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档