strcat函数使用中注意!

strcat函数使用中注意!

(记录一下今天在项目组中用strcat函数遇到的大坑)
问题描述:今天调项目组中的bug,linux下,只要输入文件路径不全(路径末尾没有"/"),需要自动补全。此时用到了字符串拼接函数strcat。但是老是报段错。
原因分析:搜了一下,都说是,要么内存溢出,要么尝试改变常量造成的。然而排查了一下,都不是。

#define  FILEPATH  “/home/test_file”
char dest[256]=FILEPATH;
strcat(dest,'/');

照理说不应该报段错,因为根本不可能溢出,也没有尝试修改常量。但是各位发现问题了吗…拼接的不是字符串呀各位!这拼接的是字符。本来源字符串是“/home/test_file\0”,但是拼接完后就变成了“/home/test_file/”,差就差在这最后的\0,它没了!不报段错才怪。记住字符拼接,不能拼字符常量,拼字符串常量。以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值