当前位置:  技术问答>linux和unix

关于strcat()函数

    来源: 互联网  发布时间:2015-03-10

    本文导语:  在linux系统上,我用c语言编一个小程序: main() {     char *p="/mnt/usb";     strcat(p,"kk");     printf("p is %s.n",p); } 我想让输出的结果是/mnt/usb/kk,可是运行的结果却是segmatation fault.为什么?请指教。 | ...

在linux系统上,我用c语言编一个小程序:
main()
{
    char *p="/mnt/usb";
    strcat(p,"kk");
    printf("p is %s.n",p);
}
我想让输出的结果是/mnt/usb/kk,可是运行的结果却是segmatation fault.为什么?请指教。

|
问题出在你应该是用p[]="/mnt/usb"而不是*p="/mnt/usb",这样p是在栈里
如果如你那样,p是在堆里.具体分析明天再给你搞吧,今天有点困,呵呵

|
出错的原因是你没有为目标串分配空间,另外调用strcat函数时要保证目标串有足够的可以容纳目标串与源串连接起来的整个串的长度,别忘了,最后还有一个''

    代码如下:

#include 
#include 

int main()
{
    char p[12] = "/mnt/usb/";
    strcat(p,"kk");
    printf("p is %s.n",p);
    return 0;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 新人求助 关于strcat的错误
  • Linux和HP-UX下的strcat的内存越界问题
  • Linux 下,我想看 strcpy,strcat的 源代码?
  • 一个有关strcat()的问题
  • c++ 连接两个字符串实现代码 实现类似strcat功能


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3