由于原来的strcat和strncat可能会产生栈溢出
所以新版的vs会提醒你换成更安全的函数strcat_s 和 strncat_s
strcat_s:三个参数 errno_t strcat_s(char * restrict dest,rsize_t destsz,const char * restrict src);
举例:
char *a = “12345”;
char *b = (char*)malloc(6);
memset(b, 0, 6);
strcat_s(b, strlen(a) + 1, a);
如果想连接部分就要用到下面这个:
strncat_s :四个参数 errno_t strncat_s(char * restrict dest,rsize_t destsz,const char * restrict src,rsize_t count);
count:最大复制数
destsz:目标缓冲区大小。
写在最后:提醒自己的是,很久没写c代码了,很多库函数都不记得怎么用了,突然被要求用纯c写代码,指针都忘了注意事项了。
需要提醒的是,在用指针的时候,不要乱赋值!!!!!!!!,尤其赋值的东西后面还再用,可能就会篡改原值,所以最好先动态申请空间。
今天的文章strcat与strcat_s_strlcat分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58019.html