首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strcat()不会退出

strcat()不会退出
EN

Stack Overflow用户
提问于 2012-12-08 06:50:56
回答 4查看 120关注 0票数 0

我正在尝试用C语言实现一个非常基本的服务器,其中一部分是构造HTTP头。为此,我编写了一个名为header_builder的类,它基本上为我构造了头文件。这个类最基本的方法之一是append_header_line,如下所示:

代码语言:javascript
复制
void append_header_line( const char *line, char *hdr ) {
  printf("Adding header line\n");
  strcat( hdr, line );
  printf("Line added. Adding ending.\n");
  strcat( hdr, "\r\n" );  
  printf("Success\n");
}   

它所要做的就是将"line“参数添加到"hdr”参数的末尾,然后将"\r\n“添加到它的末尾。问题是,第一个strcat调用永远不会退出。当我运行这段代码时,它所做的只是说:

添加标题行

这意味着下面的代码永远不会执行,我不知道为什么。有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2012-12-08 06:53:30

hdr和/或line没有正确地以零结尾,因此strcat会一直运行,直到它超出界限。

票数 1
EN

Stack Overflow用户

发布于 2012-12-08 06:54:27

在调用函数时,hdrline中的一个(或两个)可能不是以nul结尾的C字符串。尤其不要忘记,在添加第一个头文件之前,需要使用hdr[0] = 0;hdr初始化为空字符串。

票数 1
EN

Stack Overflow用户

发布于 2012-12-08 06:53:45

我猜有一个字符串缺少它的null结束符。

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

https://stackoverflow.com/questions/13772270

复制
相关文章

相似问题

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